View | Details | Raw Unified | Return to bug 142957 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/gmf/runtime/diagram/ui/parts/DiagramEditor.java (-1 / +7 lines)
Lines 90-95 Link Here
90
import org.eclipse.gmf.runtime.diagram.ui.internal.editparts.DiagramRootTreeEditPart;
90
import org.eclipse.gmf.runtime.diagram.ui.internal.editparts.DiagramRootTreeEditPart;
91
import org.eclipse.gmf.runtime.diagram.ui.internal.editparts.TreeDiagramEditPart;
91
import org.eclipse.gmf.runtime.diagram.ui.internal.editparts.TreeDiagramEditPart;
92
import org.eclipse.gmf.runtime.diagram.ui.internal.editparts.TreeEditPart;
92
import org.eclipse.gmf.runtime.diagram.ui.internal.editparts.TreeEditPart;
93
import org.eclipse.gmf.runtime.diagram.ui.internal.editparts.TreeNodeEditPart;
93
import org.eclipse.gmf.runtime.diagram.ui.internal.l10n.DiagramUIPluginImages;
94
import org.eclipse.gmf.runtime.diagram.ui.internal.l10n.DiagramUIPluginImages;
94
import org.eclipse.gmf.runtime.diagram.ui.internal.pagesetup.DefaultValues;
95
import org.eclipse.gmf.runtime.diagram.ui.internal.pagesetup.DefaultValues;
95
import org.eclipse.gmf.runtime.diagram.ui.internal.pagesetup.PageInfoHelper;
96
import org.eclipse.gmf.runtime.diagram.ui.internal.pagesetup.PageInfoHelper;
Lines 105-110 Link Here
105
import org.eclipse.gmf.runtime.emf.commands.core.command.EditingDomainUndoContext;
106
import org.eclipse.gmf.runtime.emf.commands.core.command.EditingDomainUndoContext;
106
import org.eclipse.gmf.runtime.notation.Diagram;
107
import org.eclipse.gmf.runtime.notation.Diagram;
107
import org.eclipse.gmf.runtime.notation.GuideStyle;
108
import org.eclipse.gmf.runtime.notation.GuideStyle;
109
import org.eclipse.gmf.runtime.notation.Node;
108
import org.eclipse.gmf.runtime.notation.NotationPackage;
110
import org.eclipse.gmf.runtime.notation.NotationPackage;
109
import org.eclipse.gmf.runtime.notation.View;
111
import org.eclipse.gmf.runtime.notation.View;
110
import org.eclipse.jface.action.Action;
112
import org.eclipse.jface.action.Action;
Lines 222-228 Link Here
222
                public EditPart createEditPart(EditPart context, Object model) {
224
                public EditPart createEditPart(EditPart context, Object model) {
223
                    if (model instanceof Diagram) {
225
                    if (model instanceof Diagram) {
224
                        return new TreeDiagramEditPart(model);
226
                        return new TreeDiagramEditPart(model);
225
                    } else {
227
                    }
228
                    else  if (model instanceof Node) {
229
                    	return new TreeNodeEditPart(model);
230
                    }
231
                    else {
226
                        return new TreeEditPart(model);
232
                        return new TreeEditPart(model);
227
                    }
233
                    }
228
                }
234
                }
(-)src/org/eclipse/gmf/runtime/diagram/ui/internal/editparts/TreeContainerEditPart.java (-4 / +2 lines)
Lines 14-21 Link Here
14
import java.util.List;
14
import java.util.List;
15
15
16
import org.eclipse.emf.common.notify.Notification;
16
import org.eclipse.emf.common.notify.Notification;
17
import org.eclipse.gmf.runtime.notation.Diagram;
18
import org.eclipse.gmf.runtime.notation.NotationPackage;
17
import org.eclipse.gmf.runtime.notation.NotationPackage;
18
import org.eclipse.gmf.runtime.notation.View;
19
19
20
/**
20
/**
21
 * @author melaasar
21
 * @author melaasar
Lines 40-48 Link Here
40
	 * @return  List of children.
40
	 * @return  List of children.
41
	 */
41
	 */
42
	protected List getModelChildren() {
42
	protected List getModelChildren() {
43
		if (getModel() instanceof Diagram)
43
		return ((View) getModel()).getChildren();
44
			return ((Diagram) getModel()).getChildren();
45
		return null;
46
	}
44
	}
47
45
48
	/**
46
	/**
(-)src/org/eclipse/gmf/runtime/diagram/ui/internal/editparts/TreeNodeEditPart.java (+58 lines)
Added Link Here
1
package org.eclipse.gmf.runtime.diagram.ui.internal.editparts;
2
3
import java.util.ArrayList;
4
import java.util.List;
5
import java.util.ListIterator;
6
7
import org.eclipse.emf.common.notify.Notification;
8
import org.eclipse.gmf.runtime.notation.Node;
9
import org.eclipse.gmf.runtime.notation.NotationPackage;
10
11
public class TreeNodeEditPart extends TreeContainerEditPart {
12
13
	public TreeNodeEditPart(Object model) {
14
		super(model);
15
	}
16
17
	/**
18
	 * Returns the children of this from the model,
19
	 * as this is capable enough of holding EditParts.
20
	 *
21
	 * @return  List of children.
22
	 */
23
	protected List getModelChildren() {
24
		if (!(getModel() instanceof Node))
25
			return super.getModelChildren();
26
		
27
		Node node = (Node)getModel();
28
		if (isCompartment(node))
29
			return super.getModelChildren();
30
		
31
		ArrayList children = new ArrayList(node.getChildren().size());
32
		ListIterator iter = node.getChildren().listIterator();
33
		while(iter.hasNext())
34
		{
35
			Object child = iter.next();
36
			if (child instanceof Node
37
					&& ((Node)child).isVisible()
38
					&& (isCompartment((Node)child)) )
39
				children.add(child);
40
		}
41
		return children;
42
	}
43
	
44
    private boolean isCompartment(Node node)
45
    {
46
    	return node.getStyle(NotationPackage.eINSTANCE.getDrawerStyle())!=null;
47
    }
48
49
	@Override
50
	protected void handleNotificationEvent(Notification event) {
51
		Object feature = event.getFeature();
52
		if (NotationPackage.eINSTANCE.getView_Visible()==feature)
53
			refreshChildren();
54
		else
55
			super.handleNotificationEvent(event);
56
	}
57
    
58
}

Return to bug 142957