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

Collapse All | Expand All

(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/PolylineEditPart.java (-16 / +5 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 13-43 Link Here
13
import org.eclipse.draw2d.IFigure;
13
import org.eclipse.draw2d.IFigure;
14
import org.eclipse.draw2d.Polyline;
14
import org.eclipse.draw2d.Polyline;
15
import org.eclipse.draw2d.StackLayout;
15
import org.eclipse.draw2d.StackLayout;
16
17
import org.eclipse.gef.EditPart;
16
import org.eclipse.gef.EditPart;
18
import org.eclipse.gef.EditPolicy;
17
import org.eclipse.gef.EditPolicy;
19
import org.eclipse.gef.Request;
18
import org.eclipse.gef.Request;
20
21
import org.eclipse.gef.commands.Command;
19
import org.eclipse.gef.commands.Command;
22
23
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
20
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
24
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
21
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
25
26
import org.eclipse.gef.requests.CreateRequest;
22
import org.eclipse.gef.requests.CreateRequest;
27
28
import org.eclipse.gmf.graphdef.editor.edit.policies.PolylineCanonicalEditPolicy;
29
import org.eclipse.gmf.graphdef.editor.edit.policies.PolylineGraphicalNodeEditPolicy;
30
import org.eclipse.gmf.graphdef.editor.edit.policies.PolylineItemSemanticEditPolicy;
23
import org.eclipse.gmf.graphdef.editor.edit.policies.PolylineItemSemanticEditPolicy;
31
32
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
24
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
33
34
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
25
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
35
36
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
26
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
37
38
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
27
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
39
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
28
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
40
41
import org.eclipse.gmf.runtime.notation.View;
29
import org.eclipse.gmf.runtime.notation.View;
42
30
43
/**
31
/**
Lines 71-80 Link Here
71
	 * @generated
59
	 * @generated
72
	 */
60
	 */
73
	protected void createDefaultEditPolicies() {
61
	protected void createDefaultEditPolicies() {
62
74
		super.createDefaultEditPolicies();
63
		super.createDefaultEditPolicies();
75
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new PolylineItemSemanticEditPolicy());
64
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new PolylineItemSemanticEditPolicy());
76
		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new PolylineGraphicalNodeEditPolicy());
77
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new PolylineCanonicalEditPolicy());
78
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
65
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
79
	}
66
	}
80
67
Lines 101-106 Link Here
101
			}
88
			}
102
		};
89
		};
103
		return lep;
90
		return lep;
91
104
	}
92
	}
105
93
106
	/**
94
	/**
Lines 121-127 Link Here
121
	 * @generated
109
	 * @generated
122
	 */
110
	 */
123
	protected NodeFigure createNodePlate() {
111
	protected NodeFigure createNodePlate() {
124
		return new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
112
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
113
		return result;
125
	}
114
	}
126
115
127
	/**
116
	/**
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/ConnectionVisualFacetsEditPart.java (-9 / +6 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-28 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
12
13
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
14
import org.eclipse.gmf.runtime.notation.View;
15
import org.eclipse.emf.common.notify.Notification;
13
import org.eclipse.emf.common.notify.Notification;
16
17
import org.eclipse.gef.EditPolicy;
14
import org.eclipse.gef.EditPolicy;
18
19
import org.eclipse.gmf.graphdef.editor.edit.policies.ConnectionVisualFacetsItemSemanticEditPolicy;
15
import org.eclipse.gmf.graphdef.editor.edit.policies.ConnectionVisualFacetsItemSemanticEditPolicy;
20
16
import org.eclipse.gmf.graphdef.editor.part.Messages;
21
import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart;
17
import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart;
22
18
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
23
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
19
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
24
25
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
20
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
21
import org.eclipse.gmf.runtime.notation.View;
26
22
27
/**
23
/**
28
 * @generated
24
 * @generated
Lines 52-58 Link Here
52
	 * @generated
48
	 * @generated
53
	 */
49
	 */
54
	public String getCompartmentName() {
50
	public String getCompartmentName() {
55
		return "VisualFacets";
51
		return Messages.ConnectionVisualFacetsEditPart_title;
56
	}
52
	}
57
53
58
	/**
54
	/**
Lines 72-75 Link Here
72
			super.setRatio(ratio);
68
			super.setRatio(ratio);
73
		}
69
		}
74
	}
70
	}
71
75
}
72
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/FigureGalleryNameEditPart.java (-41 / +34 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-83 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
12
13
import org.eclipse.gef.EditPolicy;
13
import java.util.ArrayList;
14
import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
15
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
16
import org.eclipse.gmf.runtime.notation.View;
17
import java.util.Collections;
14
import java.util.Collections;
18
import java.util.List;
15
import java.util.List;
19
16
20
import org.eclipse.draw2d.IFigure;
17
import org.eclipse.draw2d.IFigure;
21
import org.eclipse.draw2d.Label;
18
import org.eclipse.draw2d.Label;
22
23
import org.eclipse.draw2d.geometry.Point;
19
import org.eclipse.draw2d.geometry.Point;
24
25
import org.eclipse.emf.common.notify.Notification;
20
import org.eclipse.emf.common.notify.Notification;
26
27
import org.eclipse.emf.ecore.EObject;
21
import org.eclipse.emf.ecore.EObject;
28
29
import org.eclipse.emf.transaction.RunnableWithResult;
22
import org.eclipse.emf.transaction.RunnableWithResult;
30
31
import org.eclipse.gef.AccessibleEditPart;
23
import org.eclipse.gef.AccessibleEditPart;
24
import org.eclipse.gef.EditPolicy;
25
import org.eclipse.gef.GraphicalEditPart;
32
import org.eclipse.gef.Request;
26
import org.eclipse.gef.Request;
33
27
import org.eclipse.gef.commands.Command;
28
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
29
import org.eclipse.gef.handles.NonResizableHandleKit;
34
import org.eclipse.gef.requests.DirectEditRequest;
30
import org.eclipse.gef.requests.DirectEditRequest;
35
36
import org.eclipse.gef.tools.DirectEditManager;
31
import org.eclipse.gef.tools.DirectEditManager;
37
38
import org.eclipse.gmf.graphdef.editor.edit.policies.GMFGraphTextSelectionEditPolicy;
32
import org.eclipse.gmf.graphdef.editor.edit.policies.GMFGraphTextSelectionEditPolicy;
39
40
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
41
42
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
33
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
43
44
import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
34
import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
45
import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
35
import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
46
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
36
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
47
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
37
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
48
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService;
38
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService;
49
50
import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
39
import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
51
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
40
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
52
41
import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
42
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
53
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
43
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
54
55
import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
44
import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
56
57
import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
45
import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
58
59
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
46
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
60
61
import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
47
import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
62
63
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
48
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
64
65
import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
49
import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
66
import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter;
50
import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter;
67
68
import org.eclipse.gmf.runtime.notation.FontStyle;
51
import org.eclipse.gmf.runtime.notation.FontStyle;
69
import org.eclipse.gmf.runtime.notation.NotationPackage;
52
import org.eclipse.gmf.runtime.notation.NotationPackage;
70
53
import org.eclipse.gmf.runtime.notation.View;
71
import org.eclipse.jface.resource.ImageDescriptor;
72
73
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
54
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
74
75
import org.eclipse.jface.viewers.ICellEditorValidator;
55
import org.eclipse.jface.viewers.ICellEditorValidator;
76
77
import org.eclipse.swt.SWT;
78
79
import org.eclipse.swt.accessibility.AccessibleEvent;
56
import org.eclipse.swt.accessibility.AccessibleEvent;
80
81
import org.eclipse.swt.graphics.Color;
57
import org.eclipse.swt.graphics.Color;
82
import org.eclipse.swt.graphics.FontData;
58
import org.eclipse.swt.graphics.FontData;
83
import org.eclipse.swt.graphics.Image;
59
import org.eclipse.swt.graphics.Image;
Lines 125-130 Link Here
125
	protected void createDefaultEditPolicies() {
101
	protected void createDefaultEditPolicies() {
126
		super.createDefaultEditPolicies();
102
		super.createDefaultEditPolicies();
127
		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
103
		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
104
		installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicy() {
105
106
			protected List createSelectionHandles() {
107
				List handles = new ArrayList();
108
				NonResizableHandleKit.addMoveHandle((GraphicalEditPart) getHost(), handles);
109
				return handles;
110
			}
111
112
			public Command getCommand(Request request) {
113
				return null;
114
			}
115
116
			public boolean understandsRequest(Request request) {
117
				return false;
118
			}
119
		});
128
	}
120
	}
129
121
130
	/**
122
	/**
Lines 208-218 Link Here
208
	 * @generated
200
	 * @generated
209
	 */
201
	 */
210
	protected Image getLabelIcon() {
202
	protected Image getLabelIcon() {
211
		ImageDescriptor descriptor = GMFGraphDiagramEditorPlugin.getInstance().getItemImageDescriptor(getParserElement());
203
		EObject parserElement = getParserElement();
212
		if (descriptor == null) {
204
		if (parserElement == null) {
213
			descriptor = ImageDescriptor.getMissingImageDescriptor();
205
			return null;
214
		}
206
		}
215
		return descriptor.createImage();
207
		return GMFGraphElementTypes.getImage(parserElement.eClass());
216
	}
208
	}
217
209
218
	/**
210
	/**
Lines 254-260 Link Here
254
	 * @generated
246
	 * @generated
255
	 */
247
	 */
256
	protected boolean isEditable() {
248
	protected boolean isEditable() {
257
		return getEditText() != null;
249
		return getParser() != null;
258
	}
250
	}
259
251
260
	/**
252
	/**
Lines 444-450 Link Here
444
	protected void refreshFont() {
436
	protected void refreshFont() {
445
		FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
437
		FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
446
		if (style != null) {
438
		if (style != null) {
447
			FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
439
			FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? org.eclipse.swt.SWT.BOLD : org.eclipse.swt.SWT.NORMAL)
440
					| (style.isItalic() ? org.eclipse.swt.SWT.ITALIC : org.eclipse.swt.SWT.NORMAL));
448
			setFont(fontData);
441
			setFont(fontData);
449
		}
442
		}
450
	}
443
	}
Lines 559-565 Link Here
559
	 * @generated
552
	 * @generated
560
	 */
553
	 */
561
	protected IFigure createFigure() {
554
	protected IFigure createFigure() {
562
		// Parent should assign one using setLabel method
555
		// Parent should assign one using setLabel() method
563
		return null;
556
		return null;
564
	}
557
	}
565
}
558
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/FigureGalleryFiguresEditPart.java (-8 / +6 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-29 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
12
13
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
14
import org.eclipse.gmf.runtime.notation.View;
15
import org.eclipse.gef.EditPolicy;
13
import org.eclipse.gef.EditPolicy;
16
17
import org.eclipse.gmf.graphdef.editor.edit.policies.FigureGalleryFiguresCanonicalEditPolicy;
14
import org.eclipse.gmf.graphdef.editor.edit.policies.FigureGalleryFiguresCanonicalEditPolicy;
18
import org.eclipse.gmf.graphdef.editor.edit.policies.FigureGalleryFiguresItemSemanticEditPolicy;
15
import org.eclipse.gmf.graphdef.editor.edit.policies.FigureGalleryFiguresItemSemanticEditPolicy;
19
16
import org.eclipse.gmf.graphdef.editor.part.Messages;
20
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
17
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
21
22
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
18
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
23
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
19
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
20
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
24
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
21
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
25
26
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
22
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
23
import org.eclipse.gmf.runtime.notation.View;
27
24
28
/**
25
/**
29
 * @generated
26
 * @generated
Lines 46-52 Link Here
46
	 * @generated
43
	 * @generated
47
	 */
44
	 */
48
	public String getCompartmentName() {
45
	public String getCompartmentName() {
49
		return "Figures";
46
		return Messages.FigureGalleryFiguresEditPart_title;
50
	}
47
	}
51
48
52
	/**
49
	/**
Lines 69-72 Link Here
69
			super.setRatio(ratio);
66
			super.setRatio(ratio);
70
		}
67
		}
71
	}
68
	}
69
72
}
70
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/NodeEditPart.java (-36 / +50 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 11-44 Link Here
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
12
13
import org.eclipse.draw2d.IFigure;
13
import org.eclipse.draw2d.IFigure;
14
import org.eclipse.draw2d.RectangleFigure;
14
import org.eclipse.draw2d.StackLayout;
15
import org.eclipse.draw2d.StackLayout;
15
16
import org.eclipse.emf.common.notify.Notification;
17
import org.eclipse.emf.ecore.EcorePackage;
16
import org.eclipse.gef.EditPart;
18
import org.eclipse.gef.EditPart;
17
import org.eclipse.gef.EditPolicy;
19
import org.eclipse.gef.EditPolicy;
18
import org.eclipse.gef.Request;
20
import org.eclipse.gef.Request;
19
20
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.Command;
21
22
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
22
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
23
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
23
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
24
25
import org.eclipse.gef.requests.CreateRequest;
24
import org.eclipse.gef.requests.CreateRequest;
26
27
import org.eclipse.gmf.graphdef.editor.edit.policies.NodeCanonicalEditPolicy;
28
import org.eclipse.gmf.graphdef.editor.edit.policies.NodeGraphicalNodeEditPolicy;
29
import org.eclipse.gmf.graphdef.editor.edit.policies.NodeItemSemanticEditPolicy;
25
import org.eclipse.gmf.graphdef.editor.edit.policies.NodeItemSemanticEditPolicy;
30
31
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
26
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
32
27
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
33
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
28
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
34
35
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
29
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
36
37
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
30
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
38
31
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
39
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
32
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
40
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
33
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
41
42
import org.eclipse.gmf.runtime.notation.View;
34
import org.eclipse.gmf.runtime.notation.View;
43
35
44
/**
36
/**
Lines 72-81 Link Here
72
	 * @generated
64
	 * @generated
73
	 */
65
	 */
74
	protected void createDefaultEditPolicies() {
66
	protected void createDefaultEditPolicies() {
67
75
		super.createDefaultEditPolicies();
68
		super.createDefaultEditPolicies();
76
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new NodeItemSemanticEditPolicy());
69
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new NodeItemSemanticEditPolicy());
77
		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new NodeGraphicalNodeEditPolicy());
78
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new NodeCanonicalEditPolicy());
79
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
70
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
80
	}
71
	}
81
72
Lines 83-88 Link Here
83
	 * @generated
74
	 * @generated
84
	 */
75
	 */
85
	protected LayoutEditPolicy createLayoutEditPolicy() {
76
	protected LayoutEditPolicy createLayoutEditPolicy() {
77
86
		LayoutEditPolicy lep = new LayoutEditPolicy() {
78
		LayoutEditPolicy lep = new LayoutEditPolicy() {
87
79
88
			protected EditPolicy createChildEditPolicy(EditPart child) {
80
			protected EditPolicy createChildEditPolicy(EditPart child) {
Lines 102-107 Link Here
102
			}
94
			}
103
		};
95
		};
104
		return lep;
96
		return lep;
97
105
	}
98
	}
106
99
107
	/**
100
	/**
Lines 134-147 Link Here
134
	 * @generated
127
	 * @generated
135
	 */
128
	 */
136
	protected boolean removeFixedChild(EditPart childEditPart) {
129
	protected boolean removeFixedChild(EditPart childEditPart) {
130
137
		return false;
131
		return false;
138
	}
132
	}
139
133
140
	/**
134
	/**
141
	 * @generated
135
	 * @generated
142
	 */
136
	 */
137
	protected void addChildVisual(EditPart childEditPart, int index) {
138
		if (addFixedChild(childEditPart)) {
139
			return;
140
		}
141
		super.addChildVisual(childEditPart, -1);
142
	}
143
144
	/**
145
	 * @generated
146
	 */
147
	protected void removeChildVisual(EditPart childEditPart) {
148
		if (removeFixedChild(childEditPart)) {
149
			return;
150
		}
151
		super.removeChildVisual(childEditPart);
152
	}
153
154
	/**
155
	 * @generated
156
	 */
157
	protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
158
159
		return super.getContentPaneFor(editPart);
160
	}
161
162
	/**
163
	 * @generated
164
	 */
143
	protected NodeFigure createNodePlate() {
165
	protected NodeFigure createNodePlate() {
144
		return new DefaultSizeNodeFigure(getMapMode().DPtoLP(40), getMapMode().DPtoLP(40));
166
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(40), getMapMode().DPtoLP(40));
167
		return result;
145
	}
168
	}
146
169
147
	/**
170
	/**
Lines 196-222 Link Here
196
	/**
219
	/**
197
	 * @generated
220
	 * @generated
198
	 */
221
	 */
199
	protected void addChildVisual(EditPart childEditPart, int index) {
222
	protected void handleNotificationEvent(Notification event) {
200
		if (addFixedChild(childEditPart)) {
223
		if (event.getNotifier() == getModel() && EcorePackage.eINSTANCE.getEModelElement_EAnnotations().equals(event.getFeature())) {
201
			return;
224
			handleMajorSemanticChange();
225
		} else {
226
			super.handleNotificationEvent(event);
202
		}
227
		}
203
		super.addChildVisual(childEditPart, -1);
204
	}
205
206
	/**
207
	 * @generated
208
	 */
209
	protected void removeChildVisual(EditPart childEditPart) {
210
		if (removeFixedChild(childEditPart)) {
211
			return;
212
		}
213
		super.removeChildVisual(childEditPart);
214
	}
228
	}
215
229
216
	/**
230
	/**
217
	 * @generated
231
	 * @generated
218
	 */
232
	 */
219
	public class DiagramElementFigure extends org.eclipse.draw2d.RectangleFigure {
233
	public class DiagramElementFigure extends RectangleFigure {
220
234
221
		/**
235
		/**
222
		 * @generated
236
		 * @generated
Lines 230-236 Link Here
230
		 * @generated
244
		 * @generated
231
		 */
245
		 */
232
		private void createContents() {
246
		private void createContents() {
233
			org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel();
247
			WrapLabel fig_0 = new WrapLabel();
234
248
235
			setFigureDiagramElementFigure_NameLabel(fig_0);
249
			setFigureDiagramElementFigure_NameLabel(fig_0);
236
250
Lines 242-260 Link Here
242
		/**
256
		/**
243
		 * @generated
257
		 * @generated
244
		 */
258
		 */
245
		private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fDiagramElementFigure_NameLabel;
259
		private WrapLabel fDiagramElementFigure_NameLabel;
246
260
247
		/**
261
		/**
248
		 * @generated
262
		 * @generated
249
		 */
263
		 */
250
		public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureDiagramElementFigure_NameLabel() {
264
		public WrapLabel getFigureDiagramElementFigure_NameLabel() {
251
			return fDiagramElementFigure_NameLabel;
265
			return fDiagramElementFigure_NameLabel;
252
		}
266
		}
253
267
254
		/**
268
		/**
255
		 * @generated
269
		 * @generated
256
		 */
270
		 */
257
		private void setFigureDiagramElementFigure_NameLabel(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig) {
271
		private void setFigureDiagramElementFigure_NameLabel(WrapLabel fig) {
258
			fDiagramElementFigure_NameLabel = fig;
272
			fDiagramElementFigure_NameLabel = fig;
259
		}
273
		}
260
274
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/FigureGalleryEditPart.java (-36 / +50 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 11-44 Link Here
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
12
13
import org.eclipse.draw2d.IFigure;
13
import org.eclipse.draw2d.IFigure;
14
import org.eclipse.draw2d.RectangleFigure;
14
import org.eclipse.draw2d.StackLayout;
15
import org.eclipse.draw2d.StackLayout;
15
16
import org.eclipse.emf.common.notify.Notification;
17
import org.eclipse.emf.ecore.EcorePackage;
16
import org.eclipse.gef.EditPart;
18
import org.eclipse.gef.EditPart;
17
import org.eclipse.gef.EditPolicy;
19
import org.eclipse.gef.EditPolicy;
18
import org.eclipse.gef.Request;
20
import org.eclipse.gef.Request;
19
20
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.Command;
21
22
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
22
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
23
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
23
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
24
25
import org.eclipse.gef.requests.CreateRequest;
24
import org.eclipse.gef.requests.CreateRequest;
26
27
import org.eclipse.gmf.graphdef.editor.edit.policies.FigureGalleryCanonicalEditPolicy;
28
import org.eclipse.gmf.graphdef.editor.edit.policies.FigureGalleryGraphicalNodeEditPolicy;
29
import org.eclipse.gmf.graphdef.editor.edit.policies.FigureGalleryItemSemanticEditPolicy;
25
import org.eclipse.gmf.graphdef.editor.edit.policies.FigureGalleryItemSemanticEditPolicy;
30
31
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
26
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
32
27
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
33
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
28
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
34
35
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
29
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
36
37
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
30
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
38
31
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
39
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
32
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
40
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
33
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
41
42
import org.eclipse.gmf.runtime.notation.View;
34
import org.eclipse.gmf.runtime.notation.View;
43
35
44
/**
36
/**
Lines 72-81 Link Here
72
	 * @generated
64
	 * @generated
73
	 */
65
	 */
74
	protected void createDefaultEditPolicies() {
66
	protected void createDefaultEditPolicies() {
67
75
		super.createDefaultEditPolicies();
68
		super.createDefaultEditPolicies();
76
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new FigureGalleryItemSemanticEditPolicy());
69
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new FigureGalleryItemSemanticEditPolicy());
77
		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new FigureGalleryGraphicalNodeEditPolicy());
78
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new FigureGalleryCanonicalEditPolicy());
79
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
70
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
80
	}
71
	}
81
72
Lines 83-88 Link Here
83
	 * @generated
74
	 * @generated
84
	 */
75
	 */
85
	protected LayoutEditPolicy createLayoutEditPolicy() {
76
	protected LayoutEditPolicy createLayoutEditPolicy() {
77
86
		LayoutEditPolicy lep = new LayoutEditPolicy() {
78
		LayoutEditPolicy lep = new LayoutEditPolicy() {
87
79
88
			protected EditPolicy createChildEditPolicy(EditPart child) {
80
			protected EditPolicy createChildEditPolicy(EditPart child) {
Lines 102-107 Link Here
102
			}
94
			}
103
		};
95
		};
104
		return lep;
96
		return lep;
97
105
	}
98
	}
106
99
107
	/**
100
	/**
Lines 134-147 Link Here
134
	 * @generated
127
	 * @generated
135
	 */
128
	 */
136
	protected boolean removeFixedChild(EditPart childEditPart) {
129
	protected boolean removeFixedChild(EditPart childEditPart) {
130
137
		return false;
131
		return false;
138
	}
132
	}
139
133
140
	/**
134
	/**
141
	 * @generated
135
	 * @generated
142
	 */
136
	 */
137
	protected void addChildVisual(EditPart childEditPart, int index) {
138
		if (addFixedChild(childEditPart)) {
139
			return;
140
		}
141
		super.addChildVisual(childEditPart, -1);
142
	}
143
144
	/**
145
	 * @generated
146
	 */
147
	protected void removeChildVisual(EditPart childEditPart) {
148
		if (removeFixedChild(childEditPart)) {
149
			return;
150
		}
151
		super.removeChildVisual(childEditPart);
152
	}
153
154
	/**
155
	 * @generated
156
	 */
157
	protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
158
159
		return super.getContentPaneFor(editPart);
160
	}
161
162
	/**
163
	 * @generated
164
	 */
143
	protected NodeFigure createNodePlate() {
165
	protected NodeFigure createNodePlate() {
144
		return new DefaultSizeNodeFigure(getMapMode().DPtoLP(40), getMapMode().DPtoLP(40));
166
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(40), getMapMode().DPtoLP(40));
167
		return result;
145
	}
168
	}
146
169
147
	/**
170
	/**
Lines 196-222 Link Here
196
	/**
219
	/**
197
	 * @generated
220
	 * @generated
198
	 */
221
	 */
199
	protected void addChildVisual(EditPart childEditPart, int index) {
222
	protected void handleNotificationEvent(Notification event) {
200
		if (addFixedChild(childEditPart)) {
223
		if (event.getNotifier() == getModel() && EcorePackage.eINSTANCE.getEModelElement_EAnnotations().equals(event.getFeature())) {
201
			return;
224
			handleMajorSemanticChange();
225
		} else {
226
			super.handleNotificationEvent(event);
202
		}
227
		}
203
		super.addChildVisual(childEditPart, -1);
204
	}
205
206
	/**
207
	 * @generated
208
	 */
209
	protected void removeChildVisual(EditPart childEditPart) {
210
		if (removeFixedChild(childEditPart)) {
211
			return;
212
		}
213
		super.removeChildVisual(childEditPart);
214
	}
228
	}
215
229
216
	/**
230
	/**
217
	 * @generated
231
	 * @generated
218
	 */
232
	 */
219
	public class FigureGalleryFigure extends org.eclipse.draw2d.RectangleFigure {
233
	public class FigureGalleryFigure extends RectangleFigure {
220
234
221
		/**
235
		/**
222
		 * @generated
236
		 * @generated
Lines 230-236 Link Here
230
		 * @generated
244
		 * @generated
231
		 */
245
		 */
232
		private void createContents() {
246
		private void createContents() {
233
			org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel();
247
			WrapLabel fig_0 = new WrapLabel();
234
248
235
			setFigureFigureGalleryFigure_NameLabel(fig_0);
249
			setFigureFigureGalleryFigure_NameLabel(fig_0);
236
250
Lines 242-260 Link Here
242
		/**
256
		/**
243
		 * @generated
257
		 * @generated
244
		 */
258
		 */
245
		private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fFigureGalleryFigure_NameLabel;
259
		private WrapLabel fFigureGalleryFigure_NameLabel;
246
260
247
		/**
261
		/**
248
		 * @generated
262
		 * @generated
249
		 */
263
		 */
250
		public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureFigureGalleryFigure_NameLabel() {
264
		public WrapLabel getFigureFigureGalleryFigure_NameLabel() {
251
			return fFigureGalleryFigure_NameLabel;
265
			return fFigureGalleryFigure_NameLabel;
252
		}
266
		}
253
267
254
		/**
268
		/**
255
		 * @generated
269
		 * @generated
256
		 */
270
		 */
257
		private void setFigureFigureGalleryFigure_NameLabel(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig) {
271
		private void setFigureFigureGalleryFigure_NameLabel(WrapLabel fig) {
258
			fFigureGalleryFigure_NameLabel = fig;
272
			fFigureGalleryFigure_NameLabel = fig;
259
		}
273
		}
260
274
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/RoundedRectangleEditPart.java (-195 / +180 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 13-74 Link Here
13
import java.util.Collections;
13
import java.util.Collections;
14
14
15
import org.eclipse.core.commands.ExecutionException;
15
import org.eclipse.core.commands.ExecutionException;
16
17
import org.eclipse.core.runtime.IAdaptable;
16
import org.eclipse.core.runtime.IAdaptable;
18
import org.eclipse.core.runtime.IProgressMonitor;
17
import org.eclipse.core.runtime.IProgressMonitor;
19
import org.eclipse.core.runtime.IStatus;
18
import org.eclipse.core.runtime.IStatus;
20
import org.eclipse.core.runtime.NullProgressMonitor;
19
import org.eclipse.core.runtime.NullProgressMonitor;
21
import org.eclipse.core.runtime.Status;
20
import org.eclipse.core.runtime.Status;
22
23
import org.eclipse.draw2d.Figure;
21
import org.eclipse.draw2d.Figure;
24
import org.eclipse.draw2d.FreeformLayout;
22
import org.eclipse.draw2d.FreeformLayout;
25
import org.eclipse.draw2d.IFigure;
23
import org.eclipse.draw2d.IFigure;
26
import org.eclipse.draw2d.LayoutManager;
24
import org.eclipse.draw2d.LayoutManager;
27
import org.eclipse.draw2d.StackLayout;
25
import org.eclipse.draw2d.StackLayout;
28
26
import org.eclipse.draw2d.geometry.Dimension;
27
import org.eclipse.draw2d.geometry.Point;
29
import org.eclipse.draw2d.geometry.Rectangle;
28
import org.eclipse.draw2d.geometry.Rectangle;
30
31
import org.eclipse.emf.common.notify.Notification;
29
import org.eclipse.emf.common.notify.Notification;
32
33
import org.eclipse.emf.transaction.Transaction;
30
import org.eclipse.emf.transaction.Transaction;
34
35
import org.eclipse.emf.workspace.AbstractEMFOperation;
31
import org.eclipse.emf.workspace.AbstractEMFOperation;
36
37
import org.eclipse.gef.EditPart;
32
import org.eclipse.gef.EditPart;
38
import org.eclipse.gef.EditPolicy;
33
import org.eclipse.gef.EditPolicy;
39
40
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
34
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
41
42
import org.eclipse.gmf.gmfgraph.ConstantColor;
35
import org.eclipse.gmf.gmfgraph.ConstantColor;
43
import org.eclipse.gmf.gmfgraph.Dimension;
44
import org.eclipse.gmf.gmfgraph.FigureMarker;
36
import org.eclipse.gmf.gmfgraph.FigureMarker;
45
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
37
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
46
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
38
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
47
import org.eclipse.gmf.gmfgraph.Point;
48
import org.eclipse.gmf.gmfgraph.RGBColor;
39
import org.eclipse.gmf.gmfgraph.RGBColor;
49
import org.eclipse.gmf.gmfgraph.RoundedRectangle;
40
import org.eclipse.gmf.gmfgraph.RoundedRectangle;
50
import org.eclipse.gmf.gmfgraph.XYLayout;
41
import org.eclipse.gmf.gmfgraph.XYLayout;
51
import org.eclipse.gmf.gmfgraph.XYLayoutData;
42
import org.eclipse.gmf.gmfgraph.XYLayoutData;
52
53
import org.eclipse.gmf.graphdef.editor.edit.policies.RoundedRectangleCanonicalEditPolicy;
43
import org.eclipse.gmf.graphdef.editor.edit.policies.RoundedRectangleCanonicalEditPolicy;
54
import org.eclipse.gmf.graphdef.editor.edit.policies.RoundedRectangleGraphicalNodeEditPolicy;
55
import org.eclipse.gmf.graphdef.editor.edit.policies.RoundedRectangleItemSemanticEditPolicy;
44
import org.eclipse.gmf.graphdef.editor.edit.policies.RoundedRectangleItemSemanticEditPolicy;
56
57
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
45
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
58
59
import org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener;
46
import org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener;
60
61
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
47
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
62
63
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
48
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
64
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
49
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
65
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
50
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
66
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy;
51
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy;
67
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy;
52
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy;
68
69
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
53
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
70
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
54
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
71
72
import org.eclipse.gmf.runtime.notation.Bounds;
55
import org.eclipse.gmf.runtime.notation.Bounds;
73
import org.eclipse.gmf.runtime.notation.Node;
56
import org.eclipse.gmf.runtime.notation.Node;
74
import org.eclipse.gmf.runtime.notation.NotationPackage;
57
import org.eclipse.gmf.runtime.notation.NotationPackage;
Lines 93-121 Link Here
93
	/**
76
	/**
94
	 * @generated
77
	 * @generated
95
	 */
78
	 */
96
	private RoundedRectangleFigure myFigure;
79
	protected IFigure primaryShape;
97
80
98
	// TODO: use myFigure?
99
	/**
81
	/**
100
	 * @generated
82
	 * @generated
101
	 */
83
	 */
102
	protected Figure myNodeFigure;
84
	public RoundedRectangleEditPart(View view) {
85
		super(view);
86
	}
103
87
104
	/**
88
	/**
105
	 * @generated
89
	 * @generated
106
	 */
90
	 */
107
	protected IFigure primaryShape;
91
	protected void createDefaultEditPolicies() {
92
		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
93
94
		super.createDefaultEditPolicies();
95
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new RoundedRectangleItemSemanticEditPolicy());
96
		installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
97
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new RoundedRectangleCanonicalEditPolicy());
98
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
99
	}
108
100
109
	/**
101
	/**
110
	 * @generated
102
	 * @generated
111
	 */
103
	 */
112
	public RoundedRectangleEditPart(View view) {
104
	protected LayoutEditPolicy createLayoutEditPolicy() {
113
		super(view);
105
		XYLayoutEditPolicy lep = new XYLayoutEditPolicy() {
106
107
			protected EditPolicy createChildEditPolicy(EditPart child) {
108
				EditPolicy result = super.createChildEditPolicy(child);
109
				if (result == null) {
110
					return new ResizableShapeEditPolicy();
111
				}
112
				return result;
113
			}
114
115
			protected Point getLayoutOrigin() {
116
				return ((GraphicalEditPart) getHost()).getContentPane().getClientArea().getLocation();
117
			}
118
119
			protected Rectangle getCurrentConstraintFor(org.eclipse.gef.GraphicalEditPart child) {
120
				Rectangle result = super.getCurrentConstraintFor(child);
121
				if (result == null) {
122
					IFigure fig = child.getFigure();
123
					result = fig.getBounds().getCopy();
124
				}
125
				return result;
126
			}
127
128
		};
129
		return lep;
114
	}
130
	}
115
131
116
	/**
132
	/**
117
	 * @generated
133
	 * @generated
118
	 */
134
	 */
135
	protected IFigure createNodeShape() {
136
		RoundedRectangleFigure figure = new RoundedRectangleFigure();
137
		figure.setUseLocalCoordinates(true);
138
		myFigure = figure;
139
		RoundedRectangle modelElement = (RoundedRectangle) ((View) getModel()).getElement();
140
		if (modelElement != null) {
141
			{
142
				layoutDataChanged(modelElement.getLayoutData());
143
			}
144
			{
145
				layoutChanged(modelElement.getLayout());
146
			}
147
			{
148
				myFigure.setOutline(modelElement.isOutline());
149
			}
150
			{
151
				myFigure.setFill(modelElement.isFill());
152
			}
153
			{
154
				myFigure.setLineWidth(modelElement.getLineWidth());
155
			}
156
			{
157
				myFigure.setLineStyle(getLineStyle(modelElement.getLineKind()));
158
			}
159
			{
160
				myFigure.setFillXOR(modelElement.isXorFill());
161
			}
162
			{
163
				myFigure.setOutlineXOR(modelElement.isXorOutline());
164
			}
165
			{
166
				myFigure.setCornerDimensions(new Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
167
			}
168
			{
169
				myFigure.setCornerDimensions(new Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
170
			}
171
		}
172
		return primaryShape = figure;
173
	}
174
175
	/**
176
	 * @generated
177
	 */
178
	public RoundedRectangleFigure getPrimaryShape() {
179
		return (RoundedRectangleFigure) primaryShape;
180
	}
181
182
	/**
183
	 * @generated
184
	 */
185
	protected NodeFigure createNodePlate() {
186
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
187
		myNodeFigure = result;
188
		return result;
189
	}
190
191
	/**
192
	 * Creates figure for this edit part.
193
	 * 
194
	 * Body of this method does not depend on settings in generation model
195
	 * so you may safely remove <i>generated</i> tag and modify it.
196
	 * 
197
	 * @generated
198
	 */
199
	protected NodeFigure createNodeFigure() {
200
		NodeFigure figure = createNodePlate();
201
		figure.setLayoutManager(new StackLayout());
202
		IFigure shape = createNodeShape();
203
		figure.add(shape);
204
		contentPane = setupContentPane(shape);
205
		return figure;
206
	}
207
208
	/**
209
	 * Default implementation treats passed figure as content pane.
210
	 * Respects layout one may have set for generated figure.
211
	 * @param nodeShape instance of generated figure class
212
	 * @generated
213
	 */
214
	protected IFigure setupContentPane(IFigure nodeShape) {
215
		if (nodeShape.getLayoutManager() == null) {
216
			nodeShape.setLayoutManager(new FreeformLayout() {
217
218
				public Object getConstraint(IFigure figure) {
219
					Object result = constraints.get(figure);
220
					if (result == null) {
221
						result = new Rectangle(0, 0, -1, -1);
222
					}
223
					return result;
224
				}
225
			});
226
		}
227
		return nodeShape; // use nodeShape itself as contentPane
228
	}
229
230
	/**
231
	 * @generated
232
	 */
233
	public IFigure getContentPane() {
234
		if (contentPane != null) {
235
			return contentPane;
236
		}
237
		return super.getContentPane();
238
	}
239
240
	/**
241
	 * @generated
242
	 */
243
	private RoundedRectangleFigure myFigure;
244
245
	// TODO: use myFigure?
246
	/**
247
	 * @generated
248
	 */
249
	protected Figure myNodeFigure;
250
251
	/**
252
	 * @generated
253
	 */
119
	public void activate() {
254
	public void activate() {
120
		if (isActive()) {
255
		if (isActive()) {
121
			return;
256
			return;
Lines 213-226 Link Here
213
		addListenerFilter("RoundedRectangle_CornerWidth_Listener", new NotificationListener() {
348
		addListenerFilter("RoundedRectangle_CornerWidth_Listener", new NotificationListener() {
214
349
215
			public void notifyChanged(Notification notification) {
350
			public void notifyChanged(Notification notification) {
216
				myFigure.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
351
				myFigure.setCornerDimensions(new Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
217
			}
352
			}
218
		}, modelElement, GMFGraphPackage.eINSTANCE.getRoundedRectangle_CornerWidth());
353
		}, modelElement, GMFGraphPackage.eINSTANCE.getRoundedRectangle_CornerWidth());
219
354
220
		addListenerFilter("RoundedRectangle_CornerHeight_Listener", new NotificationListener() {
355
		addListenerFilter("RoundedRectangle_CornerHeight_Listener", new NotificationListener() {
221
356
222
			public void notifyChanged(Notification notification) {
357
			public void notifyChanged(Notification notification) {
223
				myFigure.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
358
				myFigure.setCornerDimensions(new Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
224
			}
359
			}
225
		}, modelElement, GMFGraphPackage.eINSTANCE.getRoundedRectangle_CornerHeight());
360
		}, modelElement, GMFGraphPackage.eINSTANCE.getRoundedRectangle_CornerHeight());
226
361
Lines 267-278 Link Here
267
402
268
						protected IStatus doExecute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
403
						protected IStatus doExecute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
269
							Bounds bounds = (Bounds) notification.getNotifier();
404
							Bounds bounds = (Bounds) notification.getNotifier();
270
							Dimension dim = modelElement.getPreferredSize();
405
							org.eclipse.gmf.gmfgraph.Dimension dim = modelElement.getPreferredSize();
271
							if (dim == null) {
406
							if (dim == null) {
272
								dim = GMFGraphFactory.eINSTANCE.createDimension();
407
								dim = GMFGraphFactory.eINSTANCE.createDimension();
273
								modelElement.setPreferredSize(dim);
408
								modelElement.setPreferredSize(dim);
274
							}
409
							}
275
							Point location = modelElement.getLocation();
410
							org.eclipse.gmf.gmfgraph.Point location = modelElement.getLocation();
276
							if (location == null) {
411
							if (location == null) {
277
								location = GMFGraphFactory.eINSTANCE.createPoint();
412
								location = GMFGraphFactory.eINSTANCE.createPoint();
278
								modelElement.setLocation(location);
413
								modelElement.setLocation(location);
Lines 292-298 Link Here
292
							}
427
							}
293
428
294
							myNodeFigure.setPreferredSize(bounds.getWidth(), bounds.getHeight());
429
							myNodeFigure.setPreferredSize(bounds.getWidth(), bounds.getHeight());
295
							myNodeFigure.setLocation(new org.eclipse.draw2d.geometry.Point(bounds.getX(), bounds.getY()));
430
							myNodeFigure.setLocation(new Point(bounds.getX(), bounds.getY()));
296
431
297
							if (modelElement.getLayoutData() instanceof XYLayoutData || (modelElement.getParent() != null && modelElement.getParent().getLayout() instanceof XYLayout)) {
432
							if (modelElement.getLayoutData() instanceof XYLayoutData || (modelElement.getParent() != null && modelElement.getParent().getLayout() instanceof XYLayout)) {
298
								XYLayoutData xyLayoutData = (XYLayoutData) modelElement.getLayoutData();
433
								XYLayoutData xyLayoutData = (XYLayoutData) modelElement.getLayoutData();
Lines 306-312 Link Here
306
									xyLayoutData.getSize().setDx(40);
441
									xyLayoutData.getSize().setDx(40);
307
									xyLayoutData.getSize().setDy(40);
442
									xyLayoutData.getSize().setDy(40);
308
								}
443
								}
309
								Point topLeft;
444
								org.eclipse.gmf.gmfgraph.Point topLeft;
310
								if (xyLayoutData.getTopLeft() != null) {
445
								if (xyLayoutData.getTopLeft() != null) {
311
									topLeft = xyLayoutData.getTopLeft();
446
									topLeft = xyLayoutData.getTopLeft();
312
								} else {
447
								} else {
Lines 318-324 Link Here
318
									topLeft.setY(location.getY());
453
									topLeft.setY(location.getY());
319
								}
454
								}
320
455
321
								Dimension size;
456
								org.eclipse.gmf.gmfgraph.Dimension size;
322
								if (xyLayoutData.getSize() != null) {
457
								if (xyLayoutData.getSize() != null) {
323
									size = xyLayoutData.getSize();
458
									size = xyLayoutData.getSize();
324
								} else {
459
								} else {
Lines 467-618 Link Here
467
	/**
602
	/**
468
	 * @generated
603
	 * @generated
469
	 */
604
	 */
470
	protected void createDefaultEditPolicies() {
605
	protected LayoutManager getFigureLayoutManager() {
471
		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
606
		return myFigure.getLayoutManager();
472
		super.createDefaultEditPolicies();
473
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new RoundedRectangleItemSemanticEditPolicy());
474
		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new RoundedRectangleGraphicalNodeEditPolicy());
475
		installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
476
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new RoundedRectangleCanonicalEditPolicy());
477
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
478
	}
479
480
	/**
481
	 * @generated
482
	 */
483
	protected LayoutEditPolicy createLayoutEditPolicy() {
484
		XYLayoutEditPolicy lep = new XYLayoutEditPolicy() {
485
486
			protected EditPolicy createChildEditPolicy(EditPart child) {
487
				EditPolicy result = super.createChildEditPolicy(child);
488
				if (result == null) {
489
					return new ResizableShapeEditPolicy();
490
				}
491
				return result;
492
			}
493
494
			protected org.eclipse.draw2d.geometry.Point getLayoutOrigin() {
495
				return ((GraphicalEditPart) getHost()).getContentPane().getClientArea().getLocation();
496
			}
497
498
			protected Rectangle getCurrentConstraintFor(org.eclipse.gef.GraphicalEditPart child) {
499
				Rectangle result = super.getCurrentConstraintFor(child);
500
				if (result == null) {
501
					IFigure fig = child.getFigure();
502
					result = fig.getBounds().getCopy();
503
				}
504
				return result;
505
			}
506
507
		};
508
		return lep;
509
	}
510
511
	/**
512
	 * @generated
513
	 */
514
	protected IFigure createNodeShape() {
515
		RoundedRectangleFigure figure = new RoundedRectangleFigure();
516
		figure.setUseLocalCoordinates(true);
517
		myFigure = figure;
518
		RoundedRectangle modelElement = (RoundedRectangle) ((View) getModel()).getElement();
519
		if (modelElement != null) {
520
			{
521
				layoutDataChanged(modelElement.getLayoutData());
522
			}
523
			{
524
				layoutChanged(modelElement.getLayout());
525
			}
526
			{
527
				myFigure.setOutline(modelElement.isOutline());
528
			}
529
			{
530
				myFigure.setFill(modelElement.isFill());
531
			}
532
			{
533
				myFigure.setLineWidth(modelElement.getLineWidth());
534
			}
535
			{
536
				myFigure.setLineStyle(getLineStyle(modelElement.getLineKind()));
537
			}
538
			{
539
				myFigure.setFillXOR(modelElement.isXorFill());
540
			}
541
			{
542
				myFigure.setOutlineXOR(modelElement.isXorOutline());
543
			}
544
			{
545
				myFigure.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
546
			}
547
			{
548
				myFigure.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
549
			}
550
		}
551
		return primaryShape = figure;
552
	}
553
554
	/**
555
	 * @generated
556
	 */
557
	public RoundedRectangleFigure getPrimaryShape() {
558
		return (RoundedRectangleFigure) primaryShape;
559
	}
560
561
	/**
562
	 * @generated
563
	 */
564
	protected NodeFigure createNodePlate() {
565
		return new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
566
	}
567
568
	/**
569
	 * Creates figure for this edit part.
570
	 * 
571
	 * Body of this method does not depend on settings in generation model
572
	 * so you may safely remove <i>generated</i> tag and modify it.
573
	 * 
574
	 * @generated
575
	 */
576
	protected NodeFigure createNodeFigure() {
577
		NodeFigure figure = createNodePlate();
578
		myNodeFigure = figure;
579
		figure.setLayoutManager(new StackLayout());
580
		IFigure shape = createNodeShape();
581
		figure.add(shape);
582
		contentPane = setupContentPane(shape);
583
		return figure;
584
	}
607
	}
585
608
586
	/**
609
	/**
587
	 * Default implementation treats passed figure as content pane.
588
	 * Respects layout one may have set for generated figure.
589
	 * @param nodeShape instance of generated figure class
590
	 * @generated
610
	 * @generated
591
	 */
611
	 */
592
	protected IFigure setupContentPane(IFigure nodeShape) {
612
	protected void setFigureLayoutManager(LayoutManager layoutManager) {
593
		if (nodeShape.getLayoutManager() == null) {
613
		myFigure.setLayoutManager(layoutManager);
594
			nodeShape.setLayoutManager(new FreeformLayout() {
595
596
				public Object getConstraint(IFigure figure) {
597
					Object result = constraints.get(figure);
598
					if (result == null) {
599
						result = new Rectangle(0, 0, -1, -1);
600
					}
601
					return result;
602
				}
603
			});
604
		}
605
		return nodeShape; // use nodeShape itself as contentPane
606
	}
614
	}
607
615
608
	/**
616
	/**
609
	 * @generated
617
	 * @generated
610
	 */
618
	 */
611
	public IFigure getContentPane() {
619
	protected void refreshBounds() {
612
		if (contentPane != null) {
620
		if (((View) getParent().getModel()).getElement() instanceof FigureMarker) {
613
			return contentPane;
621
			int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Width())).intValue();
622
			int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Height())).intValue();
623
			myNodeFigure.setPreferredSize(new Dimension(width, height));
624
		} else {
625
			super.refreshBounds();
614
		}
626
		}
615
		return super.getContentPane();
616
	}
627
	}
617
628
618
	/**
629
	/**
Lines 629-635 Link Here
629
640
630
			this.setLayoutManager(myGenLayoutManager);
641
			this.setLayoutManager(myGenLayoutManager);
631
642
632
			this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8), getMapMode().DPtoLP(8)));
643
			this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8), getMapMode().DPtoLP(8)));
633
644
634
			createContents();
645
			createContents();
635
		}
646
		}
Lines 661-690 Link Here
661
672
662
	}
673
	}
663
674
664
	/**
665
	 * @generated
666
	 */
667
	protected LayoutManager getFigureLayoutManager() {
668
		return myFigure.getLayoutManager();
669
	}
670
671
	/**
672
	 * @generated
673
	 */
674
	protected void setFigureLayoutManager(LayoutManager layoutManager) {
675
		myFigure.setLayoutManager(layoutManager);
676
	}
677
678
	/**
679
	 * @generated
680
	 */
681
	protected void refreshBounds() {
682
		if (((View) getParent().getModel()).getElement() instanceof FigureMarker) {
683
			int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Width())).intValue();
684
			int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Height())).intValue();
685
			myNodeFigure.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(width, height));
686
		} else {
687
			super.refreshBounds();
688
		}
689
	}
690
}
675
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/DiagramElementFigureEditPart.java (-14 / +14 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-25 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
12
13
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
14
import org.eclipse.gmf.runtime.notation.View;
15
import org.eclipse.draw2d.Connection;
13
import org.eclipse.draw2d.Connection;
16
14
import org.eclipse.draw2d.Graphics;
17
import org.eclipse.gef.EditPolicy;
15
import org.eclipse.draw2d.PolylineDecoration;
18
16
import org.eclipse.draw2d.geometry.PointList;
19
import org.eclipse.gmf.graphdef.editor.edit.policies.DiagramElementFigureItemSemanticEditPolicy;
17
import org.eclipse.gmf.graphdef.editor.edit.policies.DiagramElementFigureItemSemanticEditPolicy;
20
import org.eclipse.gmf.graphdef.editor.edit.policies.GMFGraphReferenceConnectionEditPolicy;
21
22
import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart;
18
import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart;
19
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
20
import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx;
21
import org.eclipse.gmf.runtime.notation.View;
23
22
24
/**
23
/**
25
 * @generated
24
 * @generated
Lines 43-49 Link Here
43
	 */
42
	 */
44
	protected void createDefaultEditPolicies() {
43
	protected void createDefaultEditPolicies() {
45
		super.createDefaultEditPolicies();
44
		super.createDefaultEditPolicies();
46
		installEditPolicy(EditPolicy.CONNECTION_ROLE, new GMFGraphReferenceConnectionEditPolicy());
47
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new DiagramElementFigureItemSemanticEditPolicy());
45
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new DiagramElementFigureItemSemanticEditPolicy());
48
	}
46
	}
49
47
Lines 56-86 Link Here
56
	 * @generated
54
	 * @generated
57
	 */
55
	 */
58
	protected Connection createConnectionFigure() {
56
	protected Connection createConnectionFigure() {
57
59
		return new FigureConnectionFigure();
58
		return new FigureConnectionFigure();
60
	}
59
	}
61
60
62
	/**
61
	/**
63
	 * @generated
62
	 * @generated
64
	 */
63
	 */
65
	public class FigureConnectionFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {
64
	public class FigureConnectionFigure extends PolylineConnectionEx {
66
65
67
		/**
66
		/**
68
		 * @generated
67
		 * @generated
69
		 */
68
		 */
70
		public FigureConnectionFigure() {
69
		public FigureConnectionFigure() {
71
70
72
			this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DASHDOT);
71
			this.setLineStyle(Graphics.LINE_DASHDOT);
73
			setTargetDecoration(createTargetDecoration());
72
			setTargetDecoration(createTargetDecoration());
74
		}
73
		}
75
74
76
		/**
75
		/**
77
		 * @generated
76
		 * @generated
78
		 */
77
		 */
79
		private org.eclipse.draw2d.PolylineDecoration createTargetDecoration() {
78
		private PolylineDecoration createTargetDecoration() {
80
			org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();
79
			PolylineDecoration df = new PolylineDecoration();
81
			// dispatchNext?
80
			// dispatchNext?
82
81
83
			org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();
82
			PointList pl = new PointList();
84
			pl.addPoint(-1, 1);
83
			pl.addPoint(-1, 1);
85
			pl.addPoint(0, 0);
84
			pl.addPoint(0, 0);
86
			pl.addPoint(-1, -1);
85
			pl.addPoint(-1, -1);
Lines 91-94 Link Here
91
		}
90
		}
92
91
93
	}
92
	}
93
94
}
94
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/Rectangle2EditPart.java (-184 / +170 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 13-72 Link Here
13
import java.util.Collections;
13
import java.util.Collections;
14
14
15
import org.eclipse.core.commands.ExecutionException;
15
import org.eclipse.core.commands.ExecutionException;
16
17
import org.eclipse.core.runtime.IAdaptable;
16
import org.eclipse.core.runtime.IAdaptable;
18
import org.eclipse.core.runtime.IProgressMonitor;
17
import org.eclipse.core.runtime.IProgressMonitor;
19
import org.eclipse.core.runtime.IStatus;
18
import org.eclipse.core.runtime.IStatus;
20
import org.eclipse.core.runtime.NullProgressMonitor;
19
import org.eclipse.core.runtime.NullProgressMonitor;
21
import org.eclipse.core.runtime.Status;
20
import org.eclipse.core.runtime.Status;
22
23
import org.eclipse.draw2d.Figure;
21
import org.eclipse.draw2d.Figure;
24
import org.eclipse.draw2d.FreeformLayout;
22
import org.eclipse.draw2d.FreeformLayout;
25
import org.eclipse.draw2d.IFigure;
23
import org.eclipse.draw2d.IFigure;
26
import org.eclipse.draw2d.LayoutManager;
24
import org.eclipse.draw2d.LayoutManager;
27
import org.eclipse.draw2d.StackLayout;
25
import org.eclipse.draw2d.StackLayout;
28
26
import org.eclipse.draw2d.geometry.Point;
27
import org.eclipse.draw2d.geometry.Rectangle;
29
import org.eclipse.emf.common.notify.Notification;
28
import org.eclipse.emf.common.notify.Notification;
30
31
import org.eclipse.emf.transaction.Transaction;
29
import org.eclipse.emf.transaction.Transaction;
32
33
import org.eclipse.emf.workspace.AbstractEMFOperation;
30
import org.eclipse.emf.workspace.AbstractEMFOperation;
34
35
import org.eclipse.gef.EditPart;
31
import org.eclipse.gef.EditPart;
36
import org.eclipse.gef.EditPolicy;
32
import org.eclipse.gef.EditPolicy;
37
38
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
33
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
39
40
import org.eclipse.gmf.gmfgraph.ConstantColor;
34
import org.eclipse.gmf.gmfgraph.ConstantColor;
41
import org.eclipse.gmf.gmfgraph.Dimension;
35
import org.eclipse.gmf.gmfgraph.Dimension;
42
import org.eclipse.gmf.gmfgraph.FigureMarker;
36
import org.eclipse.gmf.gmfgraph.FigureMarker;
43
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
37
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
44
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
38
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
45
import org.eclipse.gmf.gmfgraph.Point;
46
import org.eclipse.gmf.gmfgraph.RGBColor;
39
import org.eclipse.gmf.gmfgraph.RGBColor;
47
import org.eclipse.gmf.gmfgraph.Rectangle;
48
import org.eclipse.gmf.gmfgraph.XYLayout;
40
import org.eclipse.gmf.gmfgraph.XYLayout;
49
import org.eclipse.gmf.gmfgraph.XYLayoutData;
41
import org.eclipse.gmf.gmfgraph.XYLayoutData;
50
51
import org.eclipse.gmf.graphdef.editor.edit.policies.Rectangle2CanonicalEditPolicy;
42
import org.eclipse.gmf.graphdef.editor.edit.policies.Rectangle2CanonicalEditPolicy;
52
import org.eclipse.gmf.graphdef.editor.edit.policies.Rectangle2GraphicalNodeEditPolicy;
53
import org.eclipse.gmf.graphdef.editor.edit.policies.Rectangle2ItemSemanticEditPolicy;
43
import org.eclipse.gmf.graphdef.editor.edit.policies.Rectangle2ItemSemanticEditPolicy;
54
55
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
44
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
56
57
import org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener;
45
import org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener;
58
59
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
46
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
60
61
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
47
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
62
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
48
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
63
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
49
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
64
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy;
50
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy;
65
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy;
51
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy;
66
67
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
52
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
68
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
53
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
69
70
import org.eclipse.gmf.runtime.notation.Bounds;
54
import org.eclipse.gmf.runtime.notation.Bounds;
71
import org.eclipse.gmf.runtime.notation.Node;
55
import org.eclipse.gmf.runtime.notation.Node;
72
import org.eclipse.gmf.runtime.notation.NotationPackage;
56
import org.eclipse.gmf.runtime.notation.NotationPackage;
Lines 91-119 Link Here
91
	/**
75
	/**
92
	 * @generated
76
	 * @generated
93
	 */
77
	 */
94
	private RectangleFigure myFigure;
78
	protected IFigure primaryShape;
95
79
96
	// TODO: use myFigure?
97
	/**
80
	/**
98
	 * @generated
81
	 * @generated
99
	 */
82
	 */
100
	protected Figure myNodeFigure;
83
	public Rectangle2EditPart(View view) {
84
		super(view);
85
	}
101
86
102
	/**
87
	/**
103
	 * @generated
88
	 * @generated
104
	 */
89
	 */
105
	protected IFigure primaryShape;
90
	protected void createDefaultEditPolicies() {
91
		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
92
93
		super.createDefaultEditPolicies();
94
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new Rectangle2ItemSemanticEditPolicy());
95
		installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
96
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new Rectangle2CanonicalEditPolicy());
97
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
98
	}
106
99
107
	/**
100
	/**
108
	 * @generated
101
	 * @generated
109
	 */
102
	 */
110
	public Rectangle2EditPart(View view) {
103
	protected LayoutEditPolicy createLayoutEditPolicy() {
111
		super(view);
104
		XYLayoutEditPolicy lep = new XYLayoutEditPolicy() {
105
106
			protected EditPolicy createChildEditPolicy(EditPart child) {
107
				EditPolicy result = super.createChildEditPolicy(child);
108
				if (result == null) {
109
					return new ResizableShapeEditPolicy();
110
				}
111
				return result;
112
			}
113
114
			protected Point getLayoutOrigin() {
115
				return ((GraphicalEditPart) getHost()).getContentPane().getClientArea().getLocation();
116
			}
117
118
			protected Rectangle getCurrentConstraintFor(org.eclipse.gef.GraphicalEditPart child) {
119
				Rectangle result = super.getCurrentConstraintFor(child);
120
				if (result == null) {
121
					IFigure fig = child.getFigure();
122
					result = fig.getBounds().getCopy();
123
				}
124
				return result;
125
			}
126
127
		};
128
		return lep;
129
	}
130
131
	/**
132
	 * @generated
133
	 */
134
	protected IFigure createNodeShape() {
135
		RectangleFigure figure = new RectangleFigure();
136
		figure.setUseLocalCoordinates(true);
137
		myFigure = figure;
138
		org.eclipse.gmf.gmfgraph.Rectangle modelElement = (org.eclipse.gmf.gmfgraph.Rectangle) ((View) getModel()).getElement();
139
		if (modelElement != null) {
140
			{
141
				layoutDataChanged(modelElement.getLayoutData());
142
			}
143
			{
144
				layoutChanged(modelElement.getLayout());
145
			}
146
			{
147
				myFigure.setOutline(modelElement.isOutline());
148
			}
149
			{
150
				myFigure.setFill(modelElement.isFill());
151
			}
152
			{
153
				myFigure.setLineWidth(modelElement.getLineWidth());
154
			}
155
			{
156
				myFigure.setLineStyle(getLineStyle(modelElement.getLineKind()));
157
			}
158
			{
159
				myFigure.setFillXOR(modelElement.isXorFill());
160
			}
161
			{
162
				myFigure.setOutlineXOR(modelElement.isXorOutline());
163
			}
164
		}
165
		return primaryShape = figure;
166
	}
167
168
	/**
169
	 * @generated
170
	 */
171
	public RectangleFigure getPrimaryShape() {
172
		return (RectangleFigure) primaryShape;
112
	}
173
	}
113
174
114
	/**
175
	/**
115
	 * @generated
176
	 * @generated
116
	 */
177
	 */
178
	protected NodeFigure createNodePlate() {
179
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
180
		myNodeFigure = result;
181
		return result;
182
	}
183
184
	/**
185
	 * Creates figure for this edit part.
186
	 * 
187
	 * Body of this method does not depend on settings in generation model
188
	 * so you may safely remove <i>generated</i> tag and modify it.
189
	 * 
190
	 * @generated
191
	 */
192
	protected NodeFigure createNodeFigure() {
193
		NodeFigure figure = createNodePlate();
194
		figure.setLayoutManager(new StackLayout());
195
		IFigure shape = createNodeShape();
196
		figure.add(shape);
197
		contentPane = setupContentPane(shape);
198
		return figure;
199
	}
200
201
	/**
202
	 * Default implementation treats passed figure as content pane.
203
	 * Respects layout one may have set for generated figure.
204
	 * @param nodeShape instance of generated figure class
205
	 * @generated
206
	 */
207
	protected IFigure setupContentPane(IFigure nodeShape) {
208
		if (nodeShape.getLayoutManager() == null) {
209
			nodeShape.setLayoutManager(new FreeformLayout() {
210
211
				public Object getConstraint(IFigure figure) {
212
					Object result = constraints.get(figure);
213
					if (result == null) {
214
						result = new Rectangle(0, 0, -1, -1);
215
					}
216
					return result;
217
				}
218
			});
219
		}
220
		return nodeShape; // use nodeShape itself as contentPane
221
	}
222
223
	/**
224
	 * @generated
225
	 */
226
	public IFigure getContentPane() {
227
		if (contentPane != null) {
228
			return contentPane;
229
		}
230
		return super.getContentPane();
231
	}
232
233
	/**
234
	 * @generated
235
	 */
236
	private RectangleFigure myFigure;
237
238
	// TODO: use myFigure?
239
	/**
240
	 * @generated
241
	 */
242
	protected Figure myNodeFigure;
243
244
	/**
245
	 * @generated
246
	 */
117
	public void activate() {
247
	public void activate() {
118
		if (isActive()) {
248
		if (isActive()) {
119
			return;
249
			return;
Lines 124-130 Link Here
124
			return;
254
			return;
125
		}
255
		}
126
256
127
		final Rectangle modelElement = (Rectangle) view.getElement();
257
		final org.eclipse.gmf.gmfgraph.Rectangle modelElement = (org.eclipse.gmf.gmfgraph.Rectangle) view.getElement();
128
258
129
		final NotificationListener Layoutable_LayoutData_PropertiesListener = new NotificationListener() {
259
		final NotificationListener Layoutable_LayoutData_PropertiesListener = new NotificationListener() {
130
260
Lines 256-262 Link Here
256
								dim = GMFGraphFactory.eINSTANCE.createDimension();
386
								dim = GMFGraphFactory.eINSTANCE.createDimension();
257
								modelElement.setPreferredSize(dim);
387
								modelElement.setPreferredSize(dim);
258
							}
388
							}
259
							Point location = modelElement.getLocation();
389
							org.eclipse.gmf.gmfgraph.Point location = modelElement.getLocation();
260
							if (location == null) {
390
							if (location == null) {
261
								location = GMFGraphFactory.eINSTANCE.createPoint();
391
								location = GMFGraphFactory.eINSTANCE.createPoint();
262
								modelElement.setLocation(location);
392
								modelElement.setLocation(location);
Lines 276-282 Link Here
276
							}
406
							}
277
407
278
							myNodeFigure.setPreferredSize(bounds.getWidth(), bounds.getHeight());
408
							myNodeFigure.setPreferredSize(bounds.getWidth(), bounds.getHeight());
279
							myNodeFigure.setLocation(new org.eclipse.draw2d.geometry.Point(bounds.getX(), bounds.getY()));
409
							myNodeFigure.setLocation(new Point(bounds.getX(), bounds.getY()));
280
410
281
							if (modelElement.getLayoutData() instanceof XYLayoutData || (modelElement.getParent() != null && modelElement.getParent().getLayout() instanceof XYLayout)) {
411
							if (modelElement.getLayoutData() instanceof XYLayoutData || (modelElement.getParent() != null && modelElement.getParent().getLayout() instanceof XYLayout)) {
282
								XYLayoutData xyLayoutData = (XYLayoutData) modelElement.getLayoutData();
412
								XYLayoutData xyLayoutData = (XYLayoutData) modelElement.getLayoutData();
Lines 290-296 Link Here
290
									xyLayoutData.getSize().setDx(40);
420
									xyLayoutData.getSize().setDx(40);
291
									xyLayoutData.getSize().setDy(40);
421
									xyLayoutData.getSize().setDy(40);
292
								}
422
								}
293
								Point topLeft;
423
								org.eclipse.gmf.gmfgraph.Point topLeft;
294
								if (xyLayoutData.getTopLeft() != null) {
424
								if (xyLayoutData.getTopLeft() != null) {
295
									topLeft = xyLayoutData.getTopLeft();
425
									topLeft = xyLayoutData.getTopLeft();
296
								} else {
426
								} else {
Lines 451-596 Link Here
451
	/**
581
	/**
452
	 * @generated
582
	 * @generated
453
	 */
583
	 */
454
	protected void createDefaultEditPolicies() {
584
	protected LayoutManager getFigureLayoutManager() {
455
		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
585
		return myFigure.getLayoutManager();
456
		super.createDefaultEditPolicies();
457
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new Rectangle2ItemSemanticEditPolicy());
458
		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new Rectangle2GraphicalNodeEditPolicy());
459
		installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
460
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new Rectangle2CanonicalEditPolicy());
461
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
462
	}
463
464
	/**
465
	 * @generated
466
	 */
467
	protected LayoutEditPolicy createLayoutEditPolicy() {
468
		XYLayoutEditPolicy lep = new XYLayoutEditPolicy() {
469
470
			protected EditPolicy createChildEditPolicy(EditPart child) {
471
				EditPolicy result = super.createChildEditPolicy(child);
472
				if (result == null) {
473
					return new ResizableShapeEditPolicy();
474
				}
475
				return result;
476
			}
477
478
			protected org.eclipse.draw2d.geometry.Point getLayoutOrigin() {
479
				return ((GraphicalEditPart) getHost()).getContentPane().getClientArea().getLocation();
480
			}
481
482
			protected org.eclipse.draw2d.geometry.Rectangle getCurrentConstraintFor(org.eclipse.gef.GraphicalEditPart child) {
483
				org.eclipse.draw2d.geometry.Rectangle result = super.getCurrentConstraintFor(child);
484
				if (result == null) {
485
					IFigure fig = child.getFigure();
486
					result = fig.getBounds().getCopy();
487
				}
488
				return result;
489
			}
490
491
		};
492
		return lep;
493
	}
494
495
	/**
496
	 * @generated
497
	 */
498
	protected IFigure createNodeShape() {
499
		RectangleFigure figure = new RectangleFigure();
500
		figure.setUseLocalCoordinates(true);
501
		myFigure = figure;
502
		Rectangle modelElement = (Rectangle) ((View) getModel()).getElement();
503
		if (modelElement != null) {
504
			{
505
				layoutDataChanged(modelElement.getLayoutData());
506
			}
507
			{
508
				layoutChanged(modelElement.getLayout());
509
			}
510
			{
511
				myFigure.setOutline(modelElement.isOutline());
512
			}
513
			{
514
				myFigure.setFill(modelElement.isFill());
515
			}
516
			{
517
				myFigure.setLineWidth(modelElement.getLineWidth());
518
			}
519
			{
520
				myFigure.setLineStyle(getLineStyle(modelElement.getLineKind()));
521
			}
522
			{
523
				myFigure.setFillXOR(modelElement.isXorFill());
524
			}
525
			{
526
				myFigure.setOutlineXOR(modelElement.isXorOutline());
527
			}
528
		}
529
		return primaryShape = figure;
530
	}
531
532
	/**
533
	 * @generated
534
	 */
535
	public RectangleFigure getPrimaryShape() {
536
		return (RectangleFigure) primaryShape;
537
	}
538
539
	/**
540
	 * @generated
541
	 */
542
	protected NodeFigure createNodePlate() {
543
		return new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
544
	}
545
546
	/**
547
	 * Creates figure for this edit part.
548
	 * 
549
	 * Body of this method does not depend on settings in generation model
550
	 * so you may safely remove <i>generated</i> tag and modify it.
551
	 * 
552
	 * @generated
553
	 */
554
	protected NodeFigure createNodeFigure() {
555
		NodeFigure figure = createNodePlate();
556
		myNodeFigure = figure;
557
		figure.setLayoutManager(new StackLayout());
558
		IFigure shape = createNodeShape();
559
		figure.add(shape);
560
		contentPane = setupContentPane(shape);
561
		return figure;
562
	}
586
	}
563
587
564
	/**
588
	/**
565
	 * Default implementation treats passed figure as content pane.
566
	 * Respects layout one may have set for generated figure.
567
	 * @param nodeShape instance of generated figure class
568
	 * @generated
589
	 * @generated
569
	 */
590
	 */
570
	protected IFigure setupContentPane(IFigure nodeShape) {
591
	protected void setFigureLayoutManager(LayoutManager layoutManager) {
571
		if (nodeShape.getLayoutManager() == null) {
592
		myFigure.setLayoutManager(layoutManager);
572
			nodeShape.setLayoutManager(new FreeformLayout() {
573
574
				public Object getConstraint(IFigure figure) {
575
					Object result = constraints.get(figure);
576
					if (result == null) {
577
						result = new org.eclipse.draw2d.geometry.Rectangle(0, 0, -1, -1);
578
					}
579
					return result;
580
				}
581
			});
582
		}
583
		return nodeShape; // use nodeShape itself as contentPane
584
	}
593
	}
585
594
586
	/**
595
	/**
587
	 * @generated
596
	 * @generated
588
	 */
597
	 */
589
	public IFigure getContentPane() {
598
	protected void refreshBounds() {
590
		if (contentPane != null) {
599
		if (((View) getParent().getModel()).getElement() instanceof FigureMarker) {
591
			return contentPane;
600
			int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Width())).intValue();
601
			int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Height())).intValue();
602
			myNodeFigure.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(width, height));
603
		} else {
604
			super.refreshBounds();
592
		}
605
		}
593
		return super.getContentPane();
594
	}
606
	}
595
607
596
	/**
608
	/**
Lines 637-666 Link Here
637
649
638
	}
650
	}
639
651
640
	/**
641
	 * @generated
642
	 */
643
	protected LayoutManager getFigureLayoutManager() {
644
		return myFigure.getLayoutManager();
645
	}
646
647
	/**
648
	 * @generated
649
	 */
650
	protected void setFigureLayoutManager(LayoutManager layoutManager) {
651
		myFigure.setLayoutManager(layoutManager);
652
	}
653
654
	/**
655
	 * @generated
656
	 */
657
	protected void refreshBounds() {
658
		if (((View) getParent().getModel()).getElement() instanceof FigureMarker) {
659
			int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Width())).intValue();
660
			int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Height())).intValue();
661
			myNodeFigure.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(width, height));
662
		} else {
663
			super.refreshBounds();
664
		}
665
	}
666
}
652
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/NodeNameEditPart.java (-41 / +34 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-83 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
12
13
import org.eclipse.gef.EditPolicy;
13
import java.util.ArrayList;
14
import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
15
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
16
import org.eclipse.gmf.runtime.notation.View;
17
import java.util.Collections;
14
import java.util.Collections;
18
import java.util.List;
15
import java.util.List;
19
16
20
import org.eclipse.draw2d.IFigure;
17
import org.eclipse.draw2d.IFigure;
21
import org.eclipse.draw2d.Label;
18
import org.eclipse.draw2d.Label;
22
23
import org.eclipse.draw2d.geometry.Point;
19
import org.eclipse.draw2d.geometry.Point;
24
25
import org.eclipse.emf.common.notify.Notification;
20
import org.eclipse.emf.common.notify.Notification;
26
27
import org.eclipse.emf.ecore.EObject;
21
import org.eclipse.emf.ecore.EObject;
28
29
import org.eclipse.emf.transaction.RunnableWithResult;
22
import org.eclipse.emf.transaction.RunnableWithResult;
30
31
import org.eclipse.gef.AccessibleEditPart;
23
import org.eclipse.gef.AccessibleEditPart;
24
import org.eclipse.gef.EditPolicy;
25
import org.eclipse.gef.GraphicalEditPart;
32
import org.eclipse.gef.Request;
26
import org.eclipse.gef.Request;
33
27
import org.eclipse.gef.commands.Command;
28
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
29
import org.eclipse.gef.handles.NonResizableHandleKit;
34
import org.eclipse.gef.requests.DirectEditRequest;
30
import org.eclipse.gef.requests.DirectEditRequest;
35
36
import org.eclipse.gef.tools.DirectEditManager;
31
import org.eclipse.gef.tools.DirectEditManager;
37
38
import org.eclipse.gmf.graphdef.editor.edit.policies.GMFGraphTextSelectionEditPolicy;
32
import org.eclipse.gmf.graphdef.editor.edit.policies.GMFGraphTextSelectionEditPolicy;
39
40
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
41
42
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
33
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
43
44
import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
34
import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
45
import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
35
import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
46
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
36
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
47
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
37
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
48
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService;
38
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService;
49
50
import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
39
import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
51
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
40
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
52
41
import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
42
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
53
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
43
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
54
55
import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
44
import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
56
57
import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
45
import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
58
59
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
46
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
60
61
import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
47
import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
62
63
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
48
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
64
65
import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
49
import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
66
import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter;
50
import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter;
67
68
import org.eclipse.gmf.runtime.notation.FontStyle;
51
import org.eclipse.gmf.runtime.notation.FontStyle;
69
import org.eclipse.gmf.runtime.notation.NotationPackage;
52
import org.eclipse.gmf.runtime.notation.NotationPackage;
70
53
import org.eclipse.gmf.runtime.notation.View;
71
import org.eclipse.jface.resource.ImageDescriptor;
72
73
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
54
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
74
75
import org.eclipse.jface.viewers.ICellEditorValidator;
55
import org.eclipse.jface.viewers.ICellEditorValidator;
76
77
import org.eclipse.swt.SWT;
78
79
import org.eclipse.swt.accessibility.AccessibleEvent;
56
import org.eclipse.swt.accessibility.AccessibleEvent;
80
81
import org.eclipse.swt.graphics.Color;
57
import org.eclipse.swt.graphics.Color;
82
import org.eclipse.swt.graphics.FontData;
58
import org.eclipse.swt.graphics.FontData;
83
import org.eclipse.swt.graphics.Image;
59
import org.eclipse.swt.graphics.Image;
Lines 125-130 Link Here
125
	protected void createDefaultEditPolicies() {
101
	protected void createDefaultEditPolicies() {
126
		super.createDefaultEditPolicies();
102
		super.createDefaultEditPolicies();
127
		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
103
		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
104
		installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicy() {
105
106
			protected List createSelectionHandles() {
107
				List handles = new ArrayList();
108
				NonResizableHandleKit.addMoveHandle((GraphicalEditPart) getHost(), handles);
109
				return handles;
110
			}
111
112
			public Command getCommand(Request request) {
113
				return null;
114
			}
115
116
			public boolean understandsRequest(Request request) {
117
				return false;
118
			}
119
		});
128
	}
120
	}
129
121
130
	/**
122
	/**
Lines 208-218 Link Here
208
	 * @generated
200
	 * @generated
209
	 */
201
	 */
210
	protected Image getLabelIcon() {
202
	protected Image getLabelIcon() {
211
		ImageDescriptor descriptor = GMFGraphDiagramEditorPlugin.getInstance().getItemImageDescriptor(getParserElement());
203
		EObject parserElement = getParserElement();
212
		if (descriptor == null) {
204
		if (parserElement == null) {
213
			descriptor = ImageDescriptor.getMissingImageDescriptor();
205
			return null;
214
		}
206
		}
215
		return descriptor.createImage();
207
		return GMFGraphElementTypes.getImage(parserElement.eClass());
216
	}
208
	}
217
209
218
	/**
210
	/**
Lines 254-260 Link Here
254
	 * @generated
246
	 * @generated
255
	 */
247
	 */
256
	protected boolean isEditable() {
248
	protected boolean isEditable() {
257
		return getEditText() != null;
249
		return getParser() != null;
258
	}
250
	}
259
251
260
	/**
252
	/**
Lines 444-450 Link Here
444
	protected void refreshFont() {
436
	protected void refreshFont() {
445
		FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
437
		FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
446
		if (style != null) {
438
		if (style != null) {
447
			FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
439
			FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? org.eclipse.swt.SWT.BOLD : org.eclipse.swt.SWT.NORMAL)
440
					| (style.isItalic() ? org.eclipse.swt.SWT.ITALIC : org.eclipse.swt.SWT.NORMAL));
448
			setFont(fontData);
441
			setFont(fontData);
449
		}
442
		}
450
	}
443
	}
Lines 559-565 Link Here
559
	 * @generated
552
	 * @generated
560
	 */
553
	 */
561
	protected IFigure createFigure() {
554
	protected IFigure createFigure() {
562
		// Parent should assign one using setLabel method
555
		// Parent should assign one using setLabel() method
563
		return null;
556
		return null;
564
	}
557
	}
565
}
558
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/Ellipse2EditPart.java (-183 / +168 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 13-74 Link Here
13
import java.util.Collections;
13
import java.util.Collections;
14
14
15
import org.eclipse.core.commands.ExecutionException;
15
import org.eclipse.core.commands.ExecutionException;
16
17
import org.eclipse.core.runtime.IAdaptable;
16
import org.eclipse.core.runtime.IAdaptable;
18
import org.eclipse.core.runtime.IProgressMonitor;
17
import org.eclipse.core.runtime.IProgressMonitor;
19
import org.eclipse.core.runtime.IStatus;
18
import org.eclipse.core.runtime.IStatus;
20
import org.eclipse.core.runtime.NullProgressMonitor;
19
import org.eclipse.core.runtime.NullProgressMonitor;
21
import org.eclipse.core.runtime.Status;
20
import org.eclipse.core.runtime.Status;
22
23
import org.eclipse.draw2d.Figure;
21
import org.eclipse.draw2d.Figure;
24
import org.eclipse.draw2d.FreeformLayout;
22
import org.eclipse.draw2d.FreeformLayout;
25
import org.eclipse.draw2d.IFigure;
23
import org.eclipse.draw2d.IFigure;
26
import org.eclipse.draw2d.LayoutManager;
24
import org.eclipse.draw2d.LayoutManager;
27
import org.eclipse.draw2d.StackLayout;
25
import org.eclipse.draw2d.StackLayout;
28
26
import org.eclipse.draw2d.geometry.Point;
29
import org.eclipse.draw2d.geometry.Rectangle;
27
import org.eclipse.draw2d.geometry.Rectangle;
30
31
import org.eclipse.emf.common.notify.Notification;
28
import org.eclipse.emf.common.notify.Notification;
32
33
import org.eclipse.emf.transaction.Transaction;
29
import org.eclipse.emf.transaction.Transaction;
34
35
import org.eclipse.emf.workspace.AbstractEMFOperation;
30
import org.eclipse.emf.workspace.AbstractEMFOperation;
36
37
import org.eclipse.gef.EditPart;
31
import org.eclipse.gef.EditPart;
38
import org.eclipse.gef.EditPolicy;
32
import org.eclipse.gef.EditPolicy;
39
40
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
33
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
41
42
import org.eclipse.gmf.gmfgraph.ConstantColor;
34
import org.eclipse.gmf.gmfgraph.ConstantColor;
43
import org.eclipse.gmf.gmfgraph.Dimension;
35
import org.eclipse.gmf.gmfgraph.Dimension;
44
import org.eclipse.gmf.gmfgraph.Ellipse;
36
import org.eclipse.gmf.gmfgraph.Ellipse;
45
import org.eclipse.gmf.gmfgraph.FigureMarker;
37
import org.eclipse.gmf.gmfgraph.FigureMarker;
46
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
38
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
47
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
39
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
48
import org.eclipse.gmf.gmfgraph.Point;
49
import org.eclipse.gmf.gmfgraph.RGBColor;
40
import org.eclipse.gmf.gmfgraph.RGBColor;
50
import org.eclipse.gmf.gmfgraph.XYLayout;
41
import org.eclipse.gmf.gmfgraph.XYLayout;
51
import org.eclipse.gmf.gmfgraph.XYLayoutData;
42
import org.eclipse.gmf.gmfgraph.XYLayoutData;
52
53
import org.eclipse.gmf.graphdef.editor.edit.policies.Ellipse2CanonicalEditPolicy;
43
import org.eclipse.gmf.graphdef.editor.edit.policies.Ellipse2CanonicalEditPolicy;
54
import org.eclipse.gmf.graphdef.editor.edit.policies.Ellipse2GraphicalNodeEditPolicy;
55
import org.eclipse.gmf.graphdef.editor.edit.policies.Ellipse2ItemSemanticEditPolicy;
44
import org.eclipse.gmf.graphdef.editor.edit.policies.Ellipse2ItemSemanticEditPolicy;
56
57
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
45
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
58
59
import org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener;
46
import org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener;
60
61
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
47
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
62
63
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
48
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
64
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
49
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
65
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
50
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
66
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy;
51
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy;
67
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy;
52
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy;
68
69
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
53
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
70
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
54
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
71
72
import org.eclipse.gmf.runtime.notation.Bounds;
55
import org.eclipse.gmf.runtime.notation.Bounds;
73
import org.eclipse.gmf.runtime.notation.Node;
56
import org.eclipse.gmf.runtime.notation.Node;
74
import org.eclipse.gmf.runtime.notation.NotationPackage;
57
import org.eclipse.gmf.runtime.notation.NotationPackage;
Lines 93-121 Link Here
93
	/**
76
	/**
94
	 * @generated
77
	 * @generated
95
	 */
78
	 */
96
	private EllipseFigure myFigure;
79
	protected IFigure primaryShape;
97
80
98
	// TODO: use myFigure?
99
	/**
81
	/**
100
	 * @generated
82
	 * @generated
101
	 */
83
	 */
102
	protected Figure myNodeFigure;
84
	public Ellipse2EditPart(View view) {
85
		super(view);
86
	}
103
87
104
	/**
88
	/**
105
	 * @generated
89
	 * @generated
106
	 */
90
	 */
107
	protected IFigure primaryShape;
91
	protected void createDefaultEditPolicies() {
92
		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
93
94
		super.createDefaultEditPolicies();
95
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new Ellipse2ItemSemanticEditPolicy());
96
		installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
97
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new Ellipse2CanonicalEditPolicy());
98
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
99
	}
108
100
109
	/**
101
	/**
110
	 * @generated
102
	 * @generated
111
	 */
103
	 */
112
	public Ellipse2EditPart(View view) {
104
	protected LayoutEditPolicy createLayoutEditPolicy() {
113
		super(view);
105
		XYLayoutEditPolicy lep = new XYLayoutEditPolicy() {
106
107
			protected EditPolicy createChildEditPolicy(EditPart child) {
108
				EditPolicy result = super.createChildEditPolicy(child);
109
				if (result == null) {
110
					return new ResizableShapeEditPolicy();
111
				}
112
				return result;
113
			}
114
115
			protected Point getLayoutOrigin() {
116
				return ((GraphicalEditPart) getHost()).getContentPane().getClientArea().getLocation();
117
			}
118
119
			protected Rectangle getCurrentConstraintFor(org.eclipse.gef.GraphicalEditPart child) {
120
				Rectangle result = super.getCurrentConstraintFor(child);
121
				if (result == null) {
122
					IFigure fig = child.getFigure();
123
					result = fig.getBounds().getCopy();
124
				}
125
				return result;
126
			}
127
128
		};
129
		return lep;
130
	}
131
132
	/**
133
	 * @generated
134
	 */
135
	protected IFigure createNodeShape() {
136
		EllipseFigure figure = new EllipseFigure();
137
		figure.setUseLocalCoordinates(true);
138
		myFigure = figure;
139
		Ellipse modelElement = (Ellipse) ((View) getModel()).getElement();
140
		if (modelElement != null) {
141
			{
142
				layoutDataChanged(modelElement.getLayoutData());
143
			}
144
			{
145
				layoutChanged(modelElement.getLayout());
146
			}
147
			{
148
				myFigure.setOutline(modelElement.isOutline());
149
			}
150
			{
151
				myFigure.setFill(modelElement.isFill());
152
			}
153
			{
154
				myFigure.setLineWidth(modelElement.getLineWidth());
155
			}
156
			{
157
				myFigure.setLineStyle(getLineStyle(modelElement.getLineKind()));
158
			}
159
			{
160
				myFigure.setFillXOR(modelElement.isXorFill());
161
			}
162
			{
163
				myFigure.setOutlineXOR(modelElement.isXorOutline());
164
			}
165
		}
166
		return primaryShape = figure;
167
	}
168
169
	/**
170
	 * @generated
171
	 */
172
	public EllipseFigure getPrimaryShape() {
173
		return (EllipseFigure) primaryShape;
114
	}
174
	}
115
175
116
	/**
176
	/**
117
	 * @generated
177
	 * @generated
118
	 */
178
	 */
179
	protected NodeFigure createNodePlate() {
180
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
181
		myNodeFigure = result;
182
		return result;
183
	}
184
185
	/**
186
	 * Creates figure for this edit part.
187
	 * 
188
	 * Body of this method does not depend on settings in generation model
189
	 * so you may safely remove <i>generated</i> tag and modify it.
190
	 * 
191
	 * @generated
192
	 */
193
	protected NodeFigure createNodeFigure() {
194
		NodeFigure figure = createNodePlate();
195
		figure.setLayoutManager(new StackLayout());
196
		IFigure shape = createNodeShape();
197
		figure.add(shape);
198
		contentPane = setupContentPane(shape);
199
		return figure;
200
	}
201
202
	/**
203
	 * Default implementation treats passed figure as content pane.
204
	 * Respects layout one may have set for generated figure.
205
	 * @param nodeShape instance of generated figure class
206
	 * @generated
207
	 */
208
	protected IFigure setupContentPane(IFigure nodeShape) {
209
		if (nodeShape.getLayoutManager() == null) {
210
			nodeShape.setLayoutManager(new FreeformLayout() {
211
212
				public Object getConstraint(IFigure figure) {
213
					Object result = constraints.get(figure);
214
					if (result == null) {
215
						result = new Rectangle(0, 0, -1, -1);
216
					}
217
					return result;
218
				}
219
			});
220
		}
221
		return nodeShape; // use nodeShape itself as contentPane
222
	}
223
224
	/**
225
	 * @generated
226
	 */
227
	public IFigure getContentPane() {
228
		if (contentPane != null) {
229
			return contentPane;
230
		}
231
		return super.getContentPane();
232
	}
233
234
	/**
235
	 * @generated
236
	 */
237
	private EllipseFigure myFigure;
238
239
	// TODO: use myFigure?
240
	/**
241
	 * @generated
242
	 */
243
	protected Figure myNodeFigure;
244
245
	/**
246
	 * @generated
247
	 */
119
	public void activate() {
248
	public void activate() {
120
		if (isActive()) {
249
		if (isActive()) {
121
			return;
250
			return;
Lines 258-264 Link Here
258
								dim = GMFGraphFactory.eINSTANCE.createDimension();
387
								dim = GMFGraphFactory.eINSTANCE.createDimension();
259
								modelElement.setPreferredSize(dim);
388
								modelElement.setPreferredSize(dim);
260
							}
389
							}
261
							Point location = modelElement.getLocation();
390
							org.eclipse.gmf.gmfgraph.Point location = modelElement.getLocation();
262
							if (location == null) {
391
							if (location == null) {
263
								location = GMFGraphFactory.eINSTANCE.createPoint();
392
								location = GMFGraphFactory.eINSTANCE.createPoint();
264
								modelElement.setLocation(location);
393
								modelElement.setLocation(location);
Lines 278-284 Link Here
278
							}
407
							}
279
408
280
							myNodeFigure.setPreferredSize(bounds.getWidth(), bounds.getHeight());
409
							myNodeFigure.setPreferredSize(bounds.getWidth(), bounds.getHeight());
281
							myNodeFigure.setLocation(new org.eclipse.draw2d.geometry.Point(bounds.getX(), bounds.getY()));
410
							myNodeFigure.setLocation(new Point(bounds.getX(), bounds.getY()));
282
411
283
							if (modelElement.getLayoutData() instanceof XYLayoutData || (modelElement.getParent() != null && modelElement.getParent().getLayout() instanceof XYLayout)) {
412
							if (modelElement.getLayoutData() instanceof XYLayoutData || (modelElement.getParent() != null && modelElement.getParent().getLayout() instanceof XYLayout)) {
284
								XYLayoutData xyLayoutData = (XYLayoutData) modelElement.getLayoutData();
413
								XYLayoutData xyLayoutData = (XYLayoutData) modelElement.getLayoutData();
Lines 292-298 Link Here
292
									xyLayoutData.getSize().setDx(40);
421
									xyLayoutData.getSize().setDx(40);
293
									xyLayoutData.getSize().setDy(40);
422
									xyLayoutData.getSize().setDy(40);
294
								}
423
								}
295
								Point topLeft;
424
								org.eclipse.gmf.gmfgraph.Point topLeft;
296
								if (xyLayoutData.getTopLeft() != null) {
425
								if (xyLayoutData.getTopLeft() != null) {
297
									topLeft = xyLayoutData.getTopLeft();
426
									topLeft = xyLayoutData.getTopLeft();
298
								} else {
427
								} else {
Lines 453-598 Link Here
453
	/**
582
	/**
454
	 * @generated
583
	 * @generated
455
	 */
584
	 */
456
	protected void createDefaultEditPolicies() {
585
	protected LayoutManager getFigureLayoutManager() {
457
		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
586
		return myFigure.getLayoutManager();
458
		super.createDefaultEditPolicies();
459
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new Ellipse2ItemSemanticEditPolicy());
460
		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new Ellipse2GraphicalNodeEditPolicy());
461
		installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
462
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new Ellipse2CanonicalEditPolicy());
463
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
464
	}
465
466
	/**
467
	 * @generated
468
	 */
469
	protected LayoutEditPolicy createLayoutEditPolicy() {
470
		XYLayoutEditPolicy lep = new XYLayoutEditPolicy() {
471
472
			protected EditPolicy createChildEditPolicy(EditPart child) {
473
				EditPolicy result = super.createChildEditPolicy(child);
474
				if (result == null) {
475
					return new ResizableShapeEditPolicy();
476
				}
477
				return result;
478
			}
479
480
			protected org.eclipse.draw2d.geometry.Point getLayoutOrigin() {
481
				return ((GraphicalEditPart) getHost()).getContentPane().getClientArea().getLocation();
482
			}
483
484
			protected Rectangle getCurrentConstraintFor(org.eclipse.gef.GraphicalEditPart child) {
485
				Rectangle result = super.getCurrentConstraintFor(child);
486
				if (result == null) {
487
					IFigure fig = child.getFigure();
488
					result = fig.getBounds().getCopy();
489
				}
490
				return result;
491
			}
492
493
		};
494
		return lep;
495
	}
496
497
	/**
498
	 * @generated
499
	 */
500
	protected IFigure createNodeShape() {
501
		EllipseFigure figure = new EllipseFigure();
502
		figure.setUseLocalCoordinates(true);
503
		myFigure = figure;
504
		Ellipse modelElement = (Ellipse) ((View) getModel()).getElement();
505
		if (modelElement != null) {
506
			{
507
				layoutDataChanged(modelElement.getLayoutData());
508
			}
509
			{
510
				layoutChanged(modelElement.getLayout());
511
			}
512
			{
513
				myFigure.setOutline(modelElement.isOutline());
514
			}
515
			{
516
				myFigure.setFill(modelElement.isFill());
517
			}
518
			{
519
				myFigure.setLineWidth(modelElement.getLineWidth());
520
			}
521
			{
522
				myFigure.setLineStyle(getLineStyle(modelElement.getLineKind()));
523
			}
524
			{
525
				myFigure.setFillXOR(modelElement.isXorFill());
526
			}
527
			{
528
				myFigure.setOutlineXOR(modelElement.isXorOutline());
529
			}
530
		}
531
		return primaryShape = figure;
532
	}
533
534
	/**
535
	 * @generated
536
	 */
537
	public EllipseFigure getPrimaryShape() {
538
		return (EllipseFigure) primaryShape;
539
	}
540
541
	/**
542
	 * @generated
543
	 */
544
	protected NodeFigure createNodePlate() {
545
		return new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
546
	}
547
548
	/**
549
	 * Creates figure for this edit part.
550
	 * 
551
	 * Body of this method does not depend on settings in generation model
552
	 * so you may safely remove <i>generated</i> tag and modify it.
553
	 * 
554
	 * @generated
555
	 */
556
	protected NodeFigure createNodeFigure() {
557
		NodeFigure figure = createNodePlate();
558
		myNodeFigure = figure;
559
		figure.setLayoutManager(new StackLayout());
560
		IFigure shape = createNodeShape();
561
		figure.add(shape);
562
		contentPane = setupContentPane(shape);
563
		return figure;
564
	}
587
	}
565
588
566
	/**
589
	/**
567
	 * Default implementation treats passed figure as content pane.
568
	 * Respects layout one may have set for generated figure.
569
	 * @param nodeShape instance of generated figure class
570
	 * @generated
590
	 * @generated
571
	 */
591
	 */
572
	protected IFigure setupContentPane(IFigure nodeShape) {
592
	protected void setFigureLayoutManager(LayoutManager layoutManager) {
573
		if (nodeShape.getLayoutManager() == null) {
593
		myFigure.setLayoutManager(layoutManager);
574
			nodeShape.setLayoutManager(new FreeformLayout() {
575
576
				public Object getConstraint(IFigure figure) {
577
					Object result = constraints.get(figure);
578
					if (result == null) {
579
						result = new Rectangle(0, 0, -1, -1);
580
					}
581
					return result;
582
				}
583
			});
584
		}
585
		return nodeShape; // use nodeShape itself as contentPane
586
	}
594
	}
587
595
588
	/**
596
	/**
589
	 * @generated
597
	 * @generated
590
	 */
598
	 */
591
	public IFigure getContentPane() {
599
	protected void refreshBounds() {
592
		if (contentPane != null) {
600
		if (((View) getParent().getModel()).getElement() instanceof FigureMarker) {
593
			return contentPane;
601
			int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Width())).intValue();
602
			int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Height())).intValue();
603
			myNodeFigure.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(width, height));
604
		} else {
605
			super.refreshBounds();
594
		}
606
		}
595
		return super.getContentPane();
596
	}
607
	}
597
608
598
	/**
609
	/**
Lines 639-668 Link Here
639
650
640
	}
651
	}
641
652
642
	/**
643
	 * @generated
644
	 */
645
	protected LayoutManager getFigureLayoutManager() {
646
		return myFigure.getLayoutManager();
647
	}
648
649
	/**
650
	 * @generated
651
	 */
652
	protected void setFigureLayoutManager(LayoutManager layoutManager) {
653
		myFigure.setLayoutManager(layoutManager);
654
	}
655
656
	/**
657
	 * @generated
658
	 */
659
	protected void refreshBounds() {
660
		if (((View) getParent().getModel()).getElement() instanceof FigureMarker) {
661
			int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Width())).intValue();
662
			int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Height())).intValue();
663
			myNodeFigure.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(width, height));
664
		} else {
665
			super.refreshBounds();
666
		}
667
	}
668
}
653
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/CompartmentVisualFacetsEditPart.java (-9 / +6 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-28 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
12
13
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
14
import org.eclipse.gmf.runtime.notation.View;
15
import org.eclipse.emf.common.notify.Notification;
13
import org.eclipse.emf.common.notify.Notification;
16
17
import org.eclipse.gef.EditPolicy;
14
import org.eclipse.gef.EditPolicy;
18
19
import org.eclipse.gmf.graphdef.editor.edit.policies.CompartmentVisualFacetsItemSemanticEditPolicy;
15
import org.eclipse.gmf.graphdef.editor.edit.policies.CompartmentVisualFacetsItemSemanticEditPolicy;
20
16
import org.eclipse.gmf.graphdef.editor.part.Messages;
21
import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart;
17
import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart;
22
18
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
23
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
19
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
24
25
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
20
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
21
import org.eclipse.gmf.runtime.notation.View;
26
22
27
/**
23
/**
28
 * @generated
24
 * @generated
Lines 52-58 Link Here
52
	 * @generated
48
	 * @generated
53
	 */
49
	 */
54
	public String getCompartmentName() {
50
	public String getCompartmentName() {
55
		return "VisualFacets";
51
		return Messages.CompartmentVisualFacetsEditPart_title;
56
	}
52
	}
57
53
58
	/**
54
	/**
Lines 72-75 Link Here
72
			super.setRatio(ratio);
68
			super.setRatio(ratio);
73
		}
69
		}
74
	}
70
	}
71
75
}
72
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/CompartmentNameEditPart.java (-41 / +34 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-83 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
12
13
import org.eclipse.gef.EditPolicy;
13
import java.util.ArrayList;
14
import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
15
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
16
import org.eclipse.gmf.runtime.notation.View;
17
import java.util.Collections;
14
import java.util.Collections;
18
import java.util.List;
15
import java.util.List;
19
16
20
import org.eclipse.draw2d.IFigure;
17
import org.eclipse.draw2d.IFigure;
21
import org.eclipse.draw2d.Label;
18
import org.eclipse.draw2d.Label;
22
23
import org.eclipse.draw2d.geometry.Point;
19
import org.eclipse.draw2d.geometry.Point;
24
25
import org.eclipse.emf.common.notify.Notification;
20
import org.eclipse.emf.common.notify.Notification;
26
27
import org.eclipse.emf.ecore.EObject;
21
import org.eclipse.emf.ecore.EObject;
28
29
import org.eclipse.emf.transaction.RunnableWithResult;
22
import org.eclipse.emf.transaction.RunnableWithResult;
30
31
import org.eclipse.gef.AccessibleEditPart;
23
import org.eclipse.gef.AccessibleEditPart;
24
import org.eclipse.gef.EditPolicy;
25
import org.eclipse.gef.GraphicalEditPart;
32
import org.eclipse.gef.Request;
26
import org.eclipse.gef.Request;
33
27
import org.eclipse.gef.commands.Command;
28
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
29
import org.eclipse.gef.handles.NonResizableHandleKit;
34
import org.eclipse.gef.requests.DirectEditRequest;
30
import org.eclipse.gef.requests.DirectEditRequest;
35
36
import org.eclipse.gef.tools.DirectEditManager;
31
import org.eclipse.gef.tools.DirectEditManager;
37
38
import org.eclipse.gmf.graphdef.editor.edit.policies.GMFGraphTextSelectionEditPolicy;
32
import org.eclipse.gmf.graphdef.editor.edit.policies.GMFGraphTextSelectionEditPolicy;
39
40
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
41
42
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
33
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
43
44
import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
34
import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
45
import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
35
import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
46
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
36
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
47
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
37
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
48
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService;
38
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService;
49
50
import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
39
import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
51
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
40
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
52
41
import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
42
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
53
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
43
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
54
55
import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
44
import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
56
57
import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
45
import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
58
59
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
46
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
60
61
import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
47
import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
62
63
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
48
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
64
65
import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
49
import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
66
import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter;
50
import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter;
67
68
import org.eclipse.gmf.runtime.notation.FontStyle;
51
import org.eclipse.gmf.runtime.notation.FontStyle;
69
import org.eclipse.gmf.runtime.notation.NotationPackage;
52
import org.eclipse.gmf.runtime.notation.NotationPackage;
70
53
import org.eclipse.gmf.runtime.notation.View;
71
import org.eclipse.jface.resource.ImageDescriptor;
72
73
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
54
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
74
75
import org.eclipse.jface.viewers.ICellEditorValidator;
55
import org.eclipse.jface.viewers.ICellEditorValidator;
76
77
import org.eclipse.swt.SWT;
78
79
import org.eclipse.swt.accessibility.AccessibleEvent;
56
import org.eclipse.swt.accessibility.AccessibleEvent;
80
81
import org.eclipse.swt.graphics.Color;
57
import org.eclipse.swt.graphics.Color;
82
import org.eclipse.swt.graphics.FontData;
58
import org.eclipse.swt.graphics.FontData;
83
import org.eclipse.swt.graphics.Image;
59
import org.eclipse.swt.graphics.Image;
Lines 125-130 Link Here
125
	protected void createDefaultEditPolicies() {
101
	protected void createDefaultEditPolicies() {
126
		super.createDefaultEditPolicies();
102
		super.createDefaultEditPolicies();
127
		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
103
		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
104
		installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicy() {
105
106
			protected List createSelectionHandles() {
107
				List handles = new ArrayList();
108
				NonResizableHandleKit.addMoveHandle((GraphicalEditPart) getHost(), handles);
109
				return handles;
110
			}
111
112
			public Command getCommand(Request request) {
113
				return null;
114
			}
115
116
			public boolean understandsRequest(Request request) {
117
				return false;
118
			}
119
		});
128
	}
120
	}
129
121
130
	/**
122
	/**
Lines 208-218 Link Here
208
	 * @generated
200
	 * @generated
209
	 */
201
	 */
210
	protected Image getLabelIcon() {
202
	protected Image getLabelIcon() {
211
		ImageDescriptor descriptor = GMFGraphDiagramEditorPlugin.getInstance().getItemImageDescriptor(getParserElement());
203
		EObject parserElement = getParserElement();
212
		if (descriptor == null) {
204
		if (parserElement == null) {
213
			descriptor = ImageDescriptor.getMissingImageDescriptor();
205
			return null;
214
		}
206
		}
215
		return descriptor.createImage();
207
		return GMFGraphElementTypes.getImage(parserElement.eClass());
216
	}
208
	}
217
209
218
	/**
210
	/**
Lines 254-260 Link Here
254
	 * @generated
246
	 * @generated
255
	 */
247
	 */
256
	protected boolean isEditable() {
248
	protected boolean isEditable() {
257
		return getEditText() != null;
249
		return getParser() != null;
258
	}
250
	}
259
251
260
	/**
252
	/**
Lines 444-450 Link Here
444
	protected void refreshFont() {
436
	protected void refreshFont() {
445
		FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
437
		FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
446
		if (style != null) {
438
		if (style != null) {
447
			FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
439
			FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? org.eclipse.swt.SWT.BOLD : org.eclipse.swt.SWT.NORMAL)
440
					| (style.isItalic() ? org.eclipse.swt.SWT.ITALIC : org.eclipse.swt.SWT.NORMAL));
448
			setFont(fontData);
441
			setFont(fontData);
449
		}
442
		}
450
	}
443
	}
Lines 559-565 Link Here
559
	 * @generated
552
	 * @generated
560
	 */
553
	 */
561
	protected IFigure createFigure() {
554
	protected IFigure createFigure() {
562
		// Parent should assign one using setLabel method
555
		// Parent should assign one using setLabel() method
563
		return null;
556
		return null;
564
	}
557
	}
565
}
558
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/GMFGraphExtNodeLabelEditPart.java (-70 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
13
import org.eclipse.draw2d.IFigure;
14
import org.eclipse.draw2d.geometry.Dimension;
15
import org.eclipse.draw2d.geometry.Point;
16
import org.eclipse.gef.GraphicalEditPart;
17
import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
18
import org.eclipse.gmf.runtime.diagram.ui.figures.LabelLocator;
19
import org.eclipse.gmf.runtime.notation.NotationPackage;
20
import org.eclipse.gmf.runtime.notation.View;
21
22
/**
23
 * @generated
24
 */
25
public class GMFGraphExtNodeLabelEditPart extends LabelEditPart {
26
27
	/**
28
	 * @generated
29
	 */
30
	public GMFGraphExtNodeLabelEditPart(View view) {
31
		super(view);
32
	}
33
34
	/**
35
	 * @generated
36
	 */
37
	public void refreshBounds() {
38
		IFigure refFigure = ((GraphicalEditPart) getParent()).getFigure();
39
		int dx = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getLocation_X())).intValue();
40
		int dy = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getLocation_Y())).intValue();
41
		Point offset = new Point(dx, dy);
42
		getFigure().getParent().setConstraint(getFigure(), new LabelLocator(refFigure, offset, getKeyPoint()) {
43
44
			public void relocate(IFigure target) {
45
				Point location = getReferencePoint().getTranslated(getOffset());
46
				location.translate(-target.getBounds().width / 2, 0);
47
				target.setLocation(location);
48
				target.setSize(new Dimension(target.getPreferredSize().width, target.getPreferredSize().height));
49
			}
50
51
			protected Point getReferencePoint() {
52
				return getLabelLocation(parent);
53
			}
54
		});
55
	}
56
57
	/**
58
	 * @generated
59
	 */
60
	public Point getReferencePoint() {
61
		return getLabelLocation(((GraphicalEditPart) getParent()).getFigure());
62
	}
63
64
	/**
65
	 * @generated
66
	 */
67
	protected Point getLabelLocation(IFigure parent) {
68
		return parent.getBounds().getBottom();
69
	}
70
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/RoundedRectangle2EditPart.java (-195 / +180 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 13-74 Link Here
13
import java.util.Collections;
13
import java.util.Collections;
14
14
15
import org.eclipse.core.commands.ExecutionException;
15
import org.eclipse.core.commands.ExecutionException;
16
17
import org.eclipse.core.runtime.IAdaptable;
16
import org.eclipse.core.runtime.IAdaptable;
18
import org.eclipse.core.runtime.IProgressMonitor;
17
import org.eclipse.core.runtime.IProgressMonitor;
19
import org.eclipse.core.runtime.IStatus;
18
import org.eclipse.core.runtime.IStatus;
20
import org.eclipse.core.runtime.NullProgressMonitor;
19
import org.eclipse.core.runtime.NullProgressMonitor;
21
import org.eclipse.core.runtime.Status;
20
import org.eclipse.core.runtime.Status;
22
23
import org.eclipse.draw2d.Figure;
21
import org.eclipse.draw2d.Figure;
24
import org.eclipse.draw2d.FreeformLayout;
22
import org.eclipse.draw2d.FreeformLayout;
25
import org.eclipse.draw2d.IFigure;
23
import org.eclipse.draw2d.IFigure;
26
import org.eclipse.draw2d.LayoutManager;
24
import org.eclipse.draw2d.LayoutManager;
27
import org.eclipse.draw2d.StackLayout;
25
import org.eclipse.draw2d.StackLayout;
28
26
import org.eclipse.draw2d.geometry.Dimension;
27
import org.eclipse.draw2d.geometry.Point;
29
import org.eclipse.draw2d.geometry.Rectangle;
28
import org.eclipse.draw2d.geometry.Rectangle;
30
31
import org.eclipse.emf.common.notify.Notification;
29
import org.eclipse.emf.common.notify.Notification;
32
33
import org.eclipse.emf.transaction.Transaction;
30
import org.eclipse.emf.transaction.Transaction;
34
35
import org.eclipse.emf.workspace.AbstractEMFOperation;
31
import org.eclipse.emf.workspace.AbstractEMFOperation;
36
37
import org.eclipse.gef.EditPart;
32
import org.eclipse.gef.EditPart;
38
import org.eclipse.gef.EditPolicy;
33
import org.eclipse.gef.EditPolicy;
39
40
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
34
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
41
42
import org.eclipse.gmf.gmfgraph.ConstantColor;
35
import org.eclipse.gmf.gmfgraph.ConstantColor;
43
import org.eclipse.gmf.gmfgraph.Dimension;
44
import org.eclipse.gmf.gmfgraph.FigureMarker;
36
import org.eclipse.gmf.gmfgraph.FigureMarker;
45
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
37
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
46
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
38
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
47
import org.eclipse.gmf.gmfgraph.Point;
48
import org.eclipse.gmf.gmfgraph.RGBColor;
39
import org.eclipse.gmf.gmfgraph.RGBColor;
49
import org.eclipse.gmf.gmfgraph.RoundedRectangle;
40
import org.eclipse.gmf.gmfgraph.RoundedRectangle;
50
import org.eclipse.gmf.gmfgraph.XYLayout;
41
import org.eclipse.gmf.gmfgraph.XYLayout;
51
import org.eclipse.gmf.gmfgraph.XYLayoutData;
42
import org.eclipse.gmf.gmfgraph.XYLayoutData;
52
53
import org.eclipse.gmf.graphdef.editor.edit.policies.RoundedRectangle2CanonicalEditPolicy;
43
import org.eclipse.gmf.graphdef.editor.edit.policies.RoundedRectangle2CanonicalEditPolicy;
54
import org.eclipse.gmf.graphdef.editor.edit.policies.RoundedRectangle2GraphicalNodeEditPolicy;
55
import org.eclipse.gmf.graphdef.editor.edit.policies.RoundedRectangle2ItemSemanticEditPolicy;
44
import org.eclipse.gmf.graphdef.editor.edit.policies.RoundedRectangle2ItemSemanticEditPolicy;
56
57
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
45
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
58
59
import org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener;
46
import org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener;
60
61
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
47
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
62
63
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
48
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
64
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
49
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
65
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
50
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
66
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy;
51
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy;
67
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy;
52
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy;
68
69
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
53
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
70
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
54
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
71
72
import org.eclipse.gmf.runtime.notation.Bounds;
55
import org.eclipse.gmf.runtime.notation.Bounds;
73
import org.eclipse.gmf.runtime.notation.Node;
56
import org.eclipse.gmf.runtime.notation.Node;
74
import org.eclipse.gmf.runtime.notation.NotationPackage;
57
import org.eclipse.gmf.runtime.notation.NotationPackage;
Lines 93-121 Link Here
93
	/**
76
	/**
94
	 * @generated
77
	 * @generated
95
	 */
78
	 */
96
	private RoundedRectangleFigure myFigure;
79
	protected IFigure primaryShape;
97
80
98
	// TODO: use myFigure?
99
	/**
81
	/**
100
	 * @generated
82
	 * @generated
101
	 */
83
	 */
102
	protected Figure myNodeFigure;
84
	public RoundedRectangle2EditPart(View view) {
85
		super(view);
86
	}
103
87
104
	/**
88
	/**
105
	 * @generated
89
	 * @generated
106
	 */
90
	 */
107
	protected IFigure primaryShape;
91
	protected void createDefaultEditPolicies() {
92
		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
93
94
		super.createDefaultEditPolicies();
95
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new RoundedRectangle2ItemSemanticEditPolicy());
96
		installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
97
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new RoundedRectangle2CanonicalEditPolicy());
98
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
99
	}
108
100
109
	/**
101
	/**
110
	 * @generated
102
	 * @generated
111
	 */
103
	 */
112
	public RoundedRectangle2EditPart(View view) {
104
	protected LayoutEditPolicy createLayoutEditPolicy() {
113
		super(view);
105
		XYLayoutEditPolicy lep = new XYLayoutEditPolicy() {
106
107
			protected EditPolicy createChildEditPolicy(EditPart child) {
108
				EditPolicy result = super.createChildEditPolicy(child);
109
				if (result == null) {
110
					return new ResizableShapeEditPolicy();
111
				}
112
				return result;
113
			}
114
115
			protected Point getLayoutOrigin() {
116
				return ((GraphicalEditPart) getHost()).getContentPane().getClientArea().getLocation();
117
			}
118
119
			protected Rectangle getCurrentConstraintFor(org.eclipse.gef.GraphicalEditPart child) {
120
				Rectangle result = super.getCurrentConstraintFor(child);
121
				if (result == null) {
122
					IFigure fig = child.getFigure();
123
					result = fig.getBounds().getCopy();
124
				}
125
				return result;
126
			}
127
128
		};
129
		return lep;
114
	}
130
	}
115
131
116
	/**
132
	/**
117
	 * @generated
133
	 * @generated
118
	 */
134
	 */
135
	protected IFigure createNodeShape() {
136
		RoundedRectangleFigure figure = new RoundedRectangleFigure();
137
		figure.setUseLocalCoordinates(true);
138
		myFigure = figure;
139
		RoundedRectangle modelElement = (RoundedRectangle) ((View) getModel()).getElement();
140
		if (modelElement != null) {
141
			{
142
				layoutDataChanged(modelElement.getLayoutData());
143
			}
144
			{
145
				layoutChanged(modelElement.getLayout());
146
			}
147
			{
148
				myFigure.setOutline(modelElement.isOutline());
149
			}
150
			{
151
				myFigure.setFill(modelElement.isFill());
152
			}
153
			{
154
				myFigure.setLineWidth(modelElement.getLineWidth());
155
			}
156
			{
157
				myFigure.setLineStyle(getLineStyle(modelElement.getLineKind()));
158
			}
159
			{
160
				myFigure.setFillXOR(modelElement.isXorFill());
161
			}
162
			{
163
				myFigure.setOutlineXOR(modelElement.isXorOutline());
164
			}
165
			{
166
				myFigure.setCornerDimensions(new Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
167
			}
168
			{
169
				myFigure.setCornerDimensions(new Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
170
			}
171
		}
172
		return primaryShape = figure;
173
	}
174
175
	/**
176
	 * @generated
177
	 */
178
	public RoundedRectangleFigure getPrimaryShape() {
179
		return (RoundedRectangleFigure) primaryShape;
180
	}
181
182
	/**
183
	 * @generated
184
	 */
185
	protected NodeFigure createNodePlate() {
186
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
187
		myNodeFigure = result;
188
		return result;
189
	}
190
191
	/**
192
	 * Creates figure for this edit part.
193
	 * 
194
	 * Body of this method does not depend on settings in generation model
195
	 * so you may safely remove <i>generated</i> tag and modify it.
196
	 * 
197
	 * @generated
198
	 */
199
	protected NodeFigure createNodeFigure() {
200
		NodeFigure figure = createNodePlate();
201
		figure.setLayoutManager(new StackLayout());
202
		IFigure shape = createNodeShape();
203
		figure.add(shape);
204
		contentPane = setupContentPane(shape);
205
		return figure;
206
	}
207
208
	/**
209
	 * Default implementation treats passed figure as content pane.
210
	 * Respects layout one may have set for generated figure.
211
	 * @param nodeShape instance of generated figure class
212
	 * @generated
213
	 */
214
	protected IFigure setupContentPane(IFigure nodeShape) {
215
		if (nodeShape.getLayoutManager() == null) {
216
			nodeShape.setLayoutManager(new FreeformLayout() {
217
218
				public Object getConstraint(IFigure figure) {
219
					Object result = constraints.get(figure);
220
					if (result == null) {
221
						result = new Rectangle(0, 0, -1, -1);
222
					}
223
					return result;
224
				}
225
			});
226
		}
227
		return nodeShape; // use nodeShape itself as contentPane
228
	}
229
230
	/**
231
	 * @generated
232
	 */
233
	public IFigure getContentPane() {
234
		if (contentPane != null) {
235
			return contentPane;
236
		}
237
		return super.getContentPane();
238
	}
239
240
	/**
241
	 * @generated
242
	 */
243
	private RoundedRectangleFigure myFigure;
244
245
	// TODO: use myFigure?
246
	/**
247
	 * @generated
248
	 */
249
	protected Figure myNodeFigure;
250
251
	/**
252
	 * @generated
253
	 */
119
	public void activate() {
254
	public void activate() {
120
		if (isActive()) {
255
		if (isActive()) {
121
			return;
256
			return;
Lines 213-226 Link Here
213
		addListenerFilter("RoundedRectangle_CornerWidth_Listener", new NotificationListener() {
348
		addListenerFilter("RoundedRectangle_CornerWidth_Listener", new NotificationListener() {
214
349
215
			public void notifyChanged(Notification notification) {
350
			public void notifyChanged(Notification notification) {
216
				myFigure.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
351
				myFigure.setCornerDimensions(new Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
217
			}
352
			}
218
		}, modelElement, GMFGraphPackage.eINSTANCE.getRoundedRectangle_CornerWidth());
353
		}, modelElement, GMFGraphPackage.eINSTANCE.getRoundedRectangle_CornerWidth());
219
354
220
		addListenerFilter("RoundedRectangle_CornerHeight_Listener", new NotificationListener() {
355
		addListenerFilter("RoundedRectangle_CornerHeight_Listener", new NotificationListener() {
221
356
222
			public void notifyChanged(Notification notification) {
357
			public void notifyChanged(Notification notification) {
223
				myFigure.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
358
				myFigure.setCornerDimensions(new Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
224
			}
359
			}
225
		}, modelElement, GMFGraphPackage.eINSTANCE.getRoundedRectangle_CornerHeight());
360
		}, modelElement, GMFGraphPackage.eINSTANCE.getRoundedRectangle_CornerHeight());
226
361
Lines 267-278 Link Here
267
402
268
						protected IStatus doExecute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
403
						protected IStatus doExecute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
269
							Bounds bounds = (Bounds) notification.getNotifier();
404
							Bounds bounds = (Bounds) notification.getNotifier();
270
							Dimension dim = modelElement.getPreferredSize();
405
							org.eclipse.gmf.gmfgraph.Dimension dim = modelElement.getPreferredSize();
271
							if (dim == null) {
406
							if (dim == null) {
272
								dim = GMFGraphFactory.eINSTANCE.createDimension();
407
								dim = GMFGraphFactory.eINSTANCE.createDimension();
273
								modelElement.setPreferredSize(dim);
408
								modelElement.setPreferredSize(dim);
274
							}
409
							}
275
							Point location = modelElement.getLocation();
410
							org.eclipse.gmf.gmfgraph.Point location = modelElement.getLocation();
276
							if (location == null) {
411
							if (location == null) {
277
								location = GMFGraphFactory.eINSTANCE.createPoint();
412
								location = GMFGraphFactory.eINSTANCE.createPoint();
278
								modelElement.setLocation(location);
413
								modelElement.setLocation(location);
Lines 292-298 Link Here
292
							}
427
							}
293
428
294
							myNodeFigure.setPreferredSize(bounds.getWidth(), bounds.getHeight());
429
							myNodeFigure.setPreferredSize(bounds.getWidth(), bounds.getHeight());
295
							myNodeFigure.setLocation(new org.eclipse.draw2d.geometry.Point(bounds.getX(), bounds.getY()));
430
							myNodeFigure.setLocation(new Point(bounds.getX(), bounds.getY()));
296
431
297
							if (modelElement.getLayoutData() instanceof XYLayoutData || (modelElement.getParent() != null && modelElement.getParent().getLayout() instanceof XYLayout)) {
432
							if (modelElement.getLayoutData() instanceof XYLayoutData || (modelElement.getParent() != null && modelElement.getParent().getLayout() instanceof XYLayout)) {
298
								XYLayoutData xyLayoutData = (XYLayoutData) modelElement.getLayoutData();
433
								XYLayoutData xyLayoutData = (XYLayoutData) modelElement.getLayoutData();
Lines 306-312 Link Here
306
									xyLayoutData.getSize().setDx(40);
441
									xyLayoutData.getSize().setDx(40);
307
									xyLayoutData.getSize().setDy(40);
442
									xyLayoutData.getSize().setDy(40);
308
								}
443
								}
309
								Point topLeft;
444
								org.eclipse.gmf.gmfgraph.Point topLeft;
310
								if (xyLayoutData.getTopLeft() != null) {
445
								if (xyLayoutData.getTopLeft() != null) {
311
									topLeft = xyLayoutData.getTopLeft();
446
									topLeft = xyLayoutData.getTopLeft();
312
								} else {
447
								} else {
Lines 318-324 Link Here
318
									topLeft.setY(location.getY());
453
									topLeft.setY(location.getY());
319
								}
454
								}
320
455
321
								Dimension size;
456
								org.eclipse.gmf.gmfgraph.Dimension size;
322
								if (xyLayoutData.getSize() != null) {
457
								if (xyLayoutData.getSize() != null) {
323
									size = xyLayoutData.getSize();
458
									size = xyLayoutData.getSize();
324
								} else {
459
								} else {
Lines 467-618 Link Here
467
	/**
602
	/**
468
	 * @generated
603
	 * @generated
469
	 */
604
	 */
470
	protected void createDefaultEditPolicies() {
605
	protected LayoutManager getFigureLayoutManager() {
471
		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
606
		return myFigure.getLayoutManager();
472
		super.createDefaultEditPolicies();
473
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new RoundedRectangle2ItemSemanticEditPolicy());
474
		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new RoundedRectangle2GraphicalNodeEditPolicy());
475
		installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
476
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new RoundedRectangle2CanonicalEditPolicy());
477
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
478
	}
479
480
	/**
481
	 * @generated
482
	 */
483
	protected LayoutEditPolicy createLayoutEditPolicy() {
484
		XYLayoutEditPolicy lep = new XYLayoutEditPolicy() {
485
486
			protected EditPolicy createChildEditPolicy(EditPart child) {
487
				EditPolicy result = super.createChildEditPolicy(child);
488
				if (result == null) {
489
					return new ResizableShapeEditPolicy();
490
				}
491
				return result;
492
			}
493
494
			protected org.eclipse.draw2d.geometry.Point getLayoutOrigin() {
495
				return ((GraphicalEditPart) getHost()).getContentPane().getClientArea().getLocation();
496
			}
497
498
			protected Rectangle getCurrentConstraintFor(org.eclipse.gef.GraphicalEditPart child) {
499
				Rectangle result = super.getCurrentConstraintFor(child);
500
				if (result == null) {
501
					IFigure fig = child.getFigure();
502
					result = fig.getBounds().getCopy();
503
				}
504
				return result;
505
			}
506
507
		};
508
		return lep;
509
	}
510
511
	/**
512
	 * @generated
513
	 */
514
	protected IFigure createNodeShape() {
515
		RoundedRectangleFigure figure = new RoundedRectangleFigure();
516
		figure.setUseLocalCoordinates(true);
517
		myFigure = figure;
518
		RoundedRectangle modelElement = (RoundedRectangle) ((View) getModel()).getElement();
519
		if (modelElement != null) {
520
			{
521
				layoutDataChanged(modelElement.getLayoutData());
522
			}
523
			{
524
				layoutChanged(modelElement.getLayout());
525
			}
526
			{
527
				myFigure.setOutline(modelElement.isOutline());
528
			}
529
			{
530
				myFigure.setFill(modelElement.isFill());
531
			}
532
			{
533
				myFigure.setLineWidth(modelElement.getLineWidth());
534
			}
535
			{
536
				myFigure.setLineStyle(getLineStyle(modelElement.getLineKind()));
537
			}
538
			{
539
				myFigure.setFillXOR(modelElement.isXorFill());
540
			}
541
			{
542
				myFigure.setOutlineXOR(modelElement.isXorOutline());
543
			}
544
			{
545
				myFigure.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
546
			}
547
			{
548
				myFigure.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(modelElement.getCornerWidth()), getMapMode().DPtoLP(modelElement.getCornerHeight())));
549
			}
550
		}
551
		return primaryShape = figure;
552
	}
553
554
	/**
555
	 * @generated
556
	 */
557
	public RoundedRectangleFigure getPrimaryShape() {
558
		return (RoundedRectangleFigure) primaryShape;
559
	}
560
561
	/**
562
	 * @generated
563
	 */
564
	protected NodeFigure createNodePlate() {
565
		return new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
566
	}
567
568
	/**
569
	 * Creates figure for this edit part.
570
	 * 
571
	 * Body of this method does not depend on settings in generation model
572
	 * so you may safely remove <i>generated</i> tag and modify it.
573
	 * 
574
	 * @generated
575
	 */
576
	protected NodeFigure createNodeFigure() {
577
		NodeFigure figure = createNodePlate();
578
		myNodeFigure = figure;
579
		figure.setLayoutManager(new StackLayout());
580
		IFigure shape = createNodeShape();
581
		figure.add(shape);
582
		contentPane = setupContentPane(shape);
583
		return figure;
584
	}
607
	}
585
608
586
	/**
609
	/**
587
	 * Default implementation treats passed figure as content pane.
588
	 * Respects layout one may have set for generated figure.
589
	 * @param nodeShape instance of generated figure class
590
	 * @generated
610
	 * @generated
591
	 */
611
	 */
592
	protected IFigure setupContentPane(IFigure nodeShape) {
612
	protected void setFigureLayoutManager(LayoutManager layoutManager) {
593
		if (nodeShape.getLayoutManager() == null) {
613
		myFigure.setLayoutManager(layoutManager);
594
			nodeShape.setLayoutManager(new FreeformLayout() {
595
596
				public Object getConstraint(IFigure figure) {
597
					Object result = constraints.get(figure);
598
					if (result == null) {
599
						result = new Rectangle(0, 0, -1, -1);
600
					}
601
					return result;
602
				}
603
			});
604
		}
605
		return nodeShape; // use nodeShape itself as contentPane
606
	}
614
	}
607
615
608
	/**
616
	/**
609
	 * @generated
617
	 * @generated
610
	 */
618
	 */
611
	public IFigure getContentPane() {
619
	protected void refreshBounds() {
612
		if (contentPane != null) {
620
		if (((View) getParent().getModel()).getElement() instanceof FigureMarker) {
613
			return contentPane;
621
			int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Width())).intValue();
622
			int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Height())).intValue();
623
			myNodeFigure.setPreferredSize(new Dimension(width, height));
624
		} else {
625
			super.refreshBounds();
614
		}
626
		}
615
		return super.getContentPane();
616
	}
627
	}
617
628
618
	/**
629
	/**
Lines 629-635 Link Here
629
640
630
			this.setLayoutManager(myGenLayoutManager);
641
			this.setLayoutManager(myGenLayoutManager);
631
642
632
			this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8), getMapMode().DPtoLP(8)));
643
			this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8), getMapMode().DPtoLP(8)));
633
644
634
			createContents();
645
			createContents();
635
		}
646
		}
Lines 661-690 Link Here
661
672
662
	}
673
	}
663
674
664
	/**
665
	 * @generated
666
	 */
667
	protected LayoutManager getFigureLayoutManager() {
668
		return myFigure.getLayoutManager();
669
	}
670
671
	/**
672
	 * @generated
673
	 */
674
	protected void setFigureLayoutManager(LayoutManager layoutManager) {
675
		myFigure.setLayoutManager(layoutManager);
676
	}
677
678
	/**
679
	 * @generated
680
	 */
681
	protected void refreshBounds() {
682
		if (((View) getParent().getModel()).getElement() instanceof FigureMarker) {
683
			int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Width())).intValue();
684
			int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Height())).intValue();
685
			myNodeFigure.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(width, height));
686
		} else {
687
			super.refreshBounds();
688
		}
689
	}
690
}
675
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/CanvasEditPart.java (-5 / +35 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-21 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
12
13
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
13
import java.util.ArrayList;
14
import org.eclipse.gmf.runtime.notation.View;
14
import java.util.Iterator;
15
import java.util.List;
16
17
import org.eclipse.emf.ecore.EObject;
18
import org.eclipse.gef.commands.Command;
19
import org.eclipse.gmf.graphdef.editor.edit.commands.GMFGraphCreateShortcutDecorationsCommand;
15
import org.eclipse.gmf.graphdef.editor.edit.policies.CanvasCanonicalEditPolicy;
20
import org.eclipse.gmf.graphdef.editor.edit.policies.CanvasCanonicalEditPolicy;
16
import org.eclipse.gmf.graphdef.editor.edit.policies.CanvasItemSemanticEditPolicy;
21
import org.eclipse.gmf.graphdef.editor.edit.policies.CanvasItemSemanticEditPolicy;
17
22
import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
18
import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
23
import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
24
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DiagramDragDropEditPolicy;
25
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
26
import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
27
import org.eclipse.gmf.runtime.diagram.ui.requests.DropObjectsRequest;
28
import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
29
import org.eclipse.gmf.runtime.notation.Node;
30
import org.eclipse.gmf.runtime.notation.View;
19
31
20
/**
32
/**
21
 * @generated
33
 * @generated
Lines 25-31 Link Here
25
	/**
37
	/**
26
	 * @generated
38
	 * @generated
27
	 */
39
	 */
28
	public static String MODEL_ID = "GMFGraph"; //$NON-NLS-1$
40
	public final static String MODEL_ID = "GMFGraph"; //$NON-NLS-1$
29
41
30
	/**
42
	/**
31
	 * @generated
43
	 * @generated
Lines 46-50 Link Here
46
		super.createDefaultEditPolicies();
58
		super.createDefaultEditPolicies();
47
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new CanvasItemSemanticEditPolicy());
59
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new CanvasItemSemanticEditPolicy());
48
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new CanvasCanonicalEditPolicy());
60
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new CanvasCanonicalEditPolicy());
61
		installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DiagramDragDropEditPolicy() {
62
63
			public Command getDropObjectsCommand(DropObjectsRequest dropRequest) {
64
				List viewDescriptors = new ArrayList();
65
				for (Iterator it = dropRequest.getObjects().iterator(); it.hasNext();) {
66
					viewDescriptors.add(new CreateViewRequest.ViewDescriptor(new EObjectAdapter((EObject) it.next()), Node.class, null, getDiagramPreferencesHint()));
67
				}
68
				return createShortcutsCommand(dropRequest, viewDescriptors);
69
			}
70
71
			private Command createShortcutsCommand(DropObjectsRequest dropRequest, List viewDescriptors) {
72
				Command command = createViewsAndArrangeCommand(dropRequest, viewDescriptors);
73
				if (command != null) {
74
					return command.chain(new ICommandProxy(new GMFGraphCreateShortcutDecorationsCommand(getEditingDomain(), (View) getModel(), viewDescriptors)));
75
				}
76
				return null;
77
			}
78
		});
49
	}
79
	}
50
}
80
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/NodeVisualFacetsEditPart.java (-9 / +6 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-28 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
12
13
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
14
import org.eclipse.gmf.runtime.notation.View;
15
import org.eclipse.emf.common.notify.Notification;
13
import org.eclipse.emf.common.notify.Notification;
16
17
import org.eclipse.gef.EditPolicy;
14
import org.eclipse.gef.EditPolicy;
18
19
import org.eclipse.gmf.graphdef.editor.edit.policies.NodeVisualFacetsItemSemanticEditPolicy;
15
import org.eclipse.gmf.graphdef.editor.edit.policies.NodeVisualFacetsItemSemanticEditPolicy;
20
16
import org.eclipse.gmf.graphdef.editor.part.Messages;
21
import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart;
17
import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart;
22
18
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
23
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
19
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
24
25
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
20
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
21
import org.eclipse.gmf.runtime.notation.View;
26
22
27
/**
23
/**
28
 * @generated
24
 * @generated
Lines 52-58 Link Here
52
	 * @generated
48
	 * @generated
53
	 */
49
	 */
54
	public String getCompartmentName() {
50
	public String getCompartmentName() {
55
		return "VisualFacets";
51
		return Messages.NodeVisualFacetsEditPart_title;
56
	}
52
	}
57
53
58
	/**
54
	/**
Lines 72-75 Link Here
72
			super.setRatio(ratio);
68
			super.setRatio(ratio);
73
		}
69
		}
74
	}
70
	}
71
75
}
72
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/EllipseEditPart.java (-183 / +168 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 13-74 Link Here
13
import java.util.Collections;
13
import java.util.Collections;
14
14
15
import org.eclipse.core.commands.ExecutionException;
15
import org.eclipse.core.commands.ExecutionException;
16
17
import org.eclipse.core.runtime.IAdaptable;
16
import org.eclipse.core.runtime.IAdaptable;
18
import org.eclipse.core.runtime.IProgressMonitor;
17
import org.eclipse.core.runtime.IProgressMonitor;
19
import org.eclipse.core.runtime.IStatus;
18
import org.eclipse.core.runtime.IStatus;
20
import org.eclipse.core.runtime.NullProgressMonitor;
19
import org.eclipse.core.runtime.NullProgressMonitor;
21
import org.eclipse.core.runtime.Status;
20
import org.eclipse.core.runtime.Status;
22
23
import org.eclipse.draw2d.Figure;
21
import org.eclipse.draw2d.Figure;
24
import org.eclipse.draw2d.FreeformLayout;
22
import org.eclipse.draw2d.FreeformLayout;
25
import org.eclipse.draw2d.IFigure;
23
import org.eclipse.draw2d.IFigure;
26
import org.eclipse.draw2d.LayoutManager;
24
import org.eclipse.draw2d.LayoutManager;
27
import org.eclipse.draw2d.StackLayout;
25
import org.eclipse.draw2d.StackLayout;
28
26
import org.eclipse.draw2d.geometry.Point;
29
import org.eclipse.draw2d.geometry.Rectangle;
27
import org.eclipse.draw2d.geometry.Rectangle;
30
31
import org.eclipse.emf.common.notify.Notification;
28
import org.eclipse.emf.common.notify.Notification;
32
33
import org.eclipse.emf.transaction.Transaction;
29
import org.eclipse.emf.transaction.Transaction;
34
35
import org.eclipse.emf.workspace.AbstractEMFOperation;
30
import org.eclipse.emf.workspace.AbstractEMFOperation;
36
37
import org.eclipse.gef.EditPart;
31
import org.eclipse.gef.EditPart;
38
import org.eclipse.gef.EditPolicy;
32
import org.eclipse.gef.EditPolicy;
39
40
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
33
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
41
42
import org.eclipse.gmf.gmfgraph.ConstantColor;
34
import org.eclipse.gmf.gmfgraph.ConstantColor;
43
import org.eclipse.gmf.gmfgraph.Dimension;
35
import org.eclipse.gmf.gmfgraph.Dimension;
44
import org.eclipse.gmf.gmfgraph.Ellipse;
36
import org.eclipse.gmf.gmfgraph.Ellipse;
45
import org.eclipse.gmf.gmfgraph.FigureMarker;
37
import org.eclipse.gmf.gmfgraph.FigureMarker;
46
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
38
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
47
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
39
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
48
import org.eclipse.gmf.gmfgraph.Point;
49
import org.eclipse.gmf.gmfgraph.RGBColor;
40
import org.eclipse.gmf.gmfgraph.RGBColor;
50
import org.eclipse.gmf.gmfgraph.XYLayout;
41
import org.eclipse.gmf.gmfgraph.XYLayout;
51
import org.eclipse.gmf.gmfgraph.XYLayoutData;
42
import org.eclipse.gmf.gmfgraph.XYLayoutData;
52
53
import org.eclipse.gmf.graphdef.editor.edit.policies.EllipseCanonicalEditPolicy;
43
import org.eclipse.gmf.graphdef.editor.edit.policies.EllipseCanonicalEditPolicy;
54
import org.eclipse.gmf.graphdef.editor.edit.policies.EllipseGraphicalNodeEditPolicy;
55
import org.eclipse.gmf.graphdef.editor.edit.policies.EllipseItemSemanticEditPolicy;
44
import org.eclipse.gmf.graphdef.editor.edit.policies.EllipseItemSemanticEditPolicy;
56
57
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
45
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
58
59
import org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener;
46
import org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener;
60
61
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
47
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
62
63
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
48
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
64
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
49
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
65
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
50
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
66
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy;
51
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy;
67
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy;
52
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy;
68
69
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
53
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
70
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
54
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
71
72
import org.eclipse.gmf.runtime.notation.Bounds;
55
import org.eclipse.gmf.runtime.notation.Bounds;
73
import org.eclipse.gmf.runtime.notation.Node;
56
import org.eclipse.gmf.runtime.notation.Node;
74
import org.eclipse.gmf.runtime.notation.NotationPackage;
57
import org.eclipse.gmf.runtime.notation.NotationPackage;
Lines 93-121 Link Here
93
	/**
76
	/**
94
	 * @generated
77
	 * @generated
95
	 */
78
	 */
96
	private EllipseFigure myFigure;
79
	protected IFigure primaryShape;
97
80
98
	// TODO: use myFigure?
99
	/**
81
	/**
100
	 * @generated
82
	 * @generated
101
	 */
83
	 */
102
	protected Figure myNodeFigure;
84
	public EllipseEditPart(View view) {
85
		super(view);
86
	}
103
87
104
	/**
88
	/**
105
	 * @generated
89
	 * @generated
106
	 */
90
	 */
107
	protected IFigure primaryShape;
91
	protected void createDefaultEditPolicies() {
92
		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
93
94
		super.createDefaultEditPolicies();
95
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new EllipseItemSemanticEditPolicy());
96
		installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
97
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new EllipseCanonicalEditPolicy());
98
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
99
	}
108
100
109
	/**
101
	/**
110
	 * @generated
102
	 * @generated
111
	 */
103
	 */
112
	public EllipseEditPart(View view) {
104
	protected LayoutEditPolicy createLayoutEditPolicy() {
113
		super(view);
105
		XYLayoutEditPolicy lep = new XYLayoutEditPolicy() {
106
107
			protected EditPolicy createChildEditPolicy(EditPart child) {
108
				EditPolicy result = super.createChildEditPolicy(child);
109
				if (result == null) {
110
					return new ResizableShapeEditPolicy();
111
				}
112
				return result;
113
			}
114
115
			protected Point getLayoutOrigin() {
116
				return ((GraphicalEditPart) getHost()).getContentPane().getClientArea().getLocation();
117
			}
118
119
			protected Rectangle getCurrentConstraintFor(org.eclipse.gef.GraphicalEditPart child) {
120
				Rectangle result = super.getCurrentConstraintFor(child);
121
				if (result == null) {
122
					IFigure fig = child.getFigure();
123
					result = fig.getBounds().getCopy();
124
				}
125
				return result;
126
			}
127
128
		};
129
		return lep;
130
	}
131
132
	/**
133
	 * @generated
134
	 */
135
	protected IFigure createNodeShape() {
136
		EllipseFigure figure = new EllipseFigure();
137
		figure.setUseLocalCoordinates(true);
138
		myFigure = figure;
139
		Ellipse modelElement = (Ellipse) ((View) getModel()).getElement();
140
		if (modelElement != null) {
141
			{
142
				layoutDataChanged(modelElement.getLayoutData());
143
			}
144
			{
145
				layoutChanged(modelElement.getLayout());
146
			}
147
			{
148
				myFigure.setOutline(modelElement.isOutline());
149
			}
150
			{
151
				myFigure.setFill(modelElement.isFill());
152
			}
153
			{
154
				myFigure.setLineWidth(modelElement.getLineWidth());
155
			}
156
			{
157
				myFigure.setLineStyle(getLineStyle(modelElement.getLineKind()));
158
			}
159
			{
160
				myFigure.setFillXOR(modelElement.isXorFill());
161
			}
162
			{
163
				myFigure.setOutlineXOR(modelElement.isXorOutline());
164
			}
165
		}
166
		return primaryShape = figure;
167
	}
168
169
	/**
170
	 * @generated
171
	 */
172
	public EllipseFigure getPrimaryShape() {
173
		return (EllipseFigure) primaryShape;
114
	}
174
	}
115
175
116
	/**
176
	/**
117
	 * @generated
177
	 * @generated
118
	 */
178
	 */
179
	protected NodeFigure createNodePlate() {
180
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
181
		myNodeFigure = result;
182
		return result;
183
	}
184
185
	/**
186
	 * Creates figure for this edit part.
187
	 * 
188
	 * Body of this method does not depend on settings in generation model
189
	 * so you may safely remove <i>generated</i> tag and modify it.
190
	 * 
191
	 * @generated
192
	 */
193
	protected NodeFigure createNodeFigure() {
194
		NodeFigure figure = createNodePlate();
195
		figure.setLayoutManager(new StackLayout());
196
		IFigure shape = createNodeShape();
197
		figure.add(shape);
198
		contentPane = setupContentPane(shape);
199
		return figure;
200
	}
201
202
	/**
203
	 * Default implementation treats passed figure as content pane.
204
	 * Respects layout one may have set for generated figure.
205
	 * @param nodeShape instance of generated figure class
206
	 * @generated
207
	 */
208
	protected IFigure setupContentPane(IFigure nodeShape) {
209
		if (nodeShape.getLayoutManager() == null) {
210
			nodeShape.setLayoutManager(new FreeformLayout() {
211
212
				public Object getConstraint(IFigure figure) {
213
					Object result = constraints.get(figure);
214
					if (result == null) {
215
						result = new Rectangle(0, 0, -1, -1);
216
					}
217
					return result;
218
				}
219
			});
220
		}
221
		return nodeShape; // use nodeShape itself as contentPane
222
	}
223
224
	/**
225
	 * @generated
226
	 */
227
	public IFigure getContentPane() {
228
		if (contentPane != null) {
229
			return contentPane;
230
		}
231
		return super.getContentPane();
232
	}
233
234
	/**
235
	 * @generated
236
	 */
237
	private EllipseFigure myFigure;
238
239
	// TODO: use myFigure?
240
	/**
241
	 * @generated
242
	 */
243
	protected Figure myNodeFigure;
244
245
	/**
246
	 * @generated
247
	 */
119
	public void activate() {
248
	public void activate() {
120
		if (isActive()) {
249
		if (isActive()) {
121
			return;
250
			return;
Lines 258-264 Link Here
258
								dim = GMFGraphFactory.eINSTANCE.createDimension();
387
								dim = GMFGraphFactory.eINSTANCE.createDimension();
259
								modelElement.setPreferredSize(dim);
388
								modelElement.setPreferredSize(dim);
260
							}
389
							}
261
							Point location = modelElement.getLocation();
390
							org.eclipse.gmf.gmfgraph.Point location = modelElement.getLocation();
262
							if (location == null) {
391
							if (location == null) {
263
								location = GMFGraphFactory.eINSTANCE.createPoint();
392
								location = GMFGraphFactory.eINSTANCE.createPoint();
264
								modelElement.setLocation(location);
393
								modelElement.setLocation(location);
Lines 278-284 Link Here
278
							}
407
							}
279
408
280
							myNodeFigure.setPreferredSize(bounds.getWidth(), bounds.getHeight());
409
							myNodeFigure.setPreferredSize(bounds.getWidth(), bounds.getHeight());
281
							myNodeFigure.setLocation(new org.eclipse.draw2d.geometry.Point(bounds.getX(), bounds.getY()));
410
							myNodeFigure.setLocation(new Point(bounds.getX(), bounds.getY()));
282
411
283
							if (modelElement.getLayoutData() instanceof XYLayoutData || (modelElement.getParent() != null && modelElement.getParent().getLayout() instanceof XYLayout)) {
412
							if (modelElement.getLayoutData() instanceof XYLayoutData || (modelElement.getParent() != null && modelElement.getParent().getLayout() instanceof XYLayout)) {
284
								XYLayoutData xyLayoutData = (XYLayoutData) modelElement.getLayoutData();
413
								XYLayoutData xyLayoutData = (XYLayoutData) modelElement.getLayoutData();
Lines 292-298 Link Here
292
									xyLayoutData.getSize().setDx(40);
421
									xyLayoutData.getSize().setDx(40);
293
									xyLayoutData.getSize().setDy(40);
422
									xyLayoutData.getSize().setDy(40);
294
								}
423
								}
295
								Point topLeft;
424
								org.eclipse.gmf.gmfgraph.Point topLeft;
296
								if (xyLayoutData.getTopLeft() != null) {
425
								if (xyLayoutData.getTopLeft() != null) {
297
									topLeft = xyLayoutData.getTopLeft();
426
									topLeft = xyLayoutData.getTopLeft();
298
								} else {
427
								} else {
Lines 453-598 Link Here
453
	/**
582
	/**
454
	 * @generated
583
	 * @generated
455
	 */
584
	 */
456
	protected void createDefaultEditPolicies() {
585
	protected LayoutManager getFigureLayoutManager() {
457
		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
586
		return myFigure.getLayoutManager();
458
		super.createDefaultEditPolicies();
459
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new EllipseItemSemanticEditPolicy());
460
		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new EllipseGraphicalNodeEditPolicy());
461
		installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
462
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new EllipseCanonicalEditPolicy());
463
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
464
	}
465
466
	/**
467
	 * @generated
468
	 */
469
	protected LayoutEditPolicy createLayoutEditPolicy() {
470
		XYLayoutEditPolicy lep = new XYLayoutEditPolicy() {
471
472
			protected EditPolicy createChildEditPolicy(EditPart child) {
473
				EditPolicy result = super.createChildEditPolicy(child);
474
				if (result == null) {
475
					return new ResizableShapeEditPolicy();
476
				}
477
				return result;
478
			}
479
480
			protected org.eclipse.draw2d.geometry.Point getLayoutOrigin() {
481
				return ((GraphicalEditPart) getHost()).getContentPane().getClientArea().getLocation();
482
			}
483
484
			protected Rectangle getCurrentConstraintFor(org.eclipse.gef.GraphicalEditPart child) {
485
				Rectangle result = super.getCurrentConstraintFor(child);
486
				if (result == null) {
487
					IFigure fig = child.getFigure();
488
					result = fig.getBounds().getCopy();
489
				}
490
				return result;
491
			}
492
493
		};
494
		return lep;
495
	}
496
497
	/**
498
	 * @generated
499
	 */
500
	protected IFigure createNodeShape() {
501
		EllipseFigure figure = new EllipseFigure();
502
		figure.setUseLocalCoordinates(true);
503
		myFigure = figure;
504
		Ellipse modelElement = (Ellipse) ((View) getModel()).getElement();
505
		if (modelElement != null) {
506
			{
507
				layoutDataChanged(modelElement.getLayoutData());
508
			}
509
			{
510
				layoutChanged(modelElement.getLayout());
511
			}
512
			{
513
				myFigure.setOutline(modelElement.isOutline());
514
			}
515
			{
516
				myFigure.setFill(modelElement.isFill());
517
			}
518
			{
519
				myFigure.setLineWidth(modelElement.getLineWidth());
520
			}
521
			{
522
				myFigure.setLineStyle(getLineStyle(modelElement.getLineKind()));
523
			}
524
			{
525
				myFigure.setFillXOR(modelElement.isXorFill());
526
			}
527
			{
528
				myFigure.setOutlineXOR(modelElement.isXorOutline());
529
			}
530
		}
531
		return primaryShape = figure;
532
	}
533
534
	/**
535
	 * @generated
536
	 */
537
	public EllipseFigure getPrimaryShape() {
538
		return (EllipseFigure) primaryShape;
539
	}
540
541
	/**
542
	 * @generated
543
	 */
544
	protected NodeFigure createNodePlate() {
545
		return new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
546
	}
547
548
	/**
549
	 * Creates figure for this edit part.
550
	 * 
551
	 * Body of this method does not depend on settings in generation model
552
	 * so you may safely remove <i>generated</i> tag and modify it.
553
	 * 
554
	 * @generated
555
	 */
556
	protected NodeFigure createNodeFigure() {
557
		NodeFigure figure = createNodePlate();
558
		myNodeFigure = figure;
559
		figure.setLayoutManager(new StackLayout());
560
		IFigure shape = createNodeShape();
561
		figure.add(shape);
562
		contentPane = setupContentPane(shape);
563
		return figure;
564
	}
587
	}
565
588
566
	/**
589
	/**
567
	 * Default implementation treats passed figure as content pane.
568
	 * Respects layout one may have set for generated figure.
569
	 * @param nodeShape instance of generated figure class
570
	 * @generated
590
	 * @generated
571
	 */
591
	 */
572
	protected IFigure setupContentPane(IFigure nodeShape) {
592
	protected void setFigureLayoutManager(LayoutManager layoutManager) {
573
		if (nodeShape.getLayoutManager() == null) {
593
		myFigure.setLayoutManager(layoutManager);
574
			nodeShape.setLayoutManager(new FreeformLayout() {
575
576
				public Object getConstraint(IFigure figure) {
577
					Object result = constraints.get(figure);
578
					if (result == null) {
579
						result = new Rectangle(0, 0, -1, -1);
580
					}
581
					return result;
582
				}
583
			});
584
		}
585
		return nodeShape; // use nodeShape itself as contentPane
586
	}
594
	}
587
595
588
	/**
596
	/**
589
	 * @generated
597
	 * @generated
590
	 */
598
	 */
591
	public IFigure getContentPane() {
599
	protected void refreshBounds() {
592
		if (contentPane != null) {
600
		if (((View) getParent().getModel()).getElement() instanceof FigureMarker) {
593
			return contentPane;
601
			int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Width())).intValue();
602
			int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Height())).intValue();
603
			myNodeFigure.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(width, height));
604
		} else {
605
			super.refreshBounds();
594
		}
606
		}
595
		return super.getContentPane();
596
	}
607
	}
597
608
598
	/**
609
	/**
Lines 639-668 Link Here
639
650
640
	}
651
	}
641
652
642
	/**
643
	 * @generated
644
	 */
645
	protected LayoutManager getFigureLayoutManager() {
646
		return myFigure.getLayoutManager();
647
	}
648
649
	/**
650
	 * @generated
651
	 */
652
	protected void setFigureLayoutManager(LayoutManager layoutManager) {
653
		myFigure.setLayoutManager(layoutManager);
654
	}
655
656
	/**
657
	 * @generated
658
	 */
659
	protected void refreshBounds() {
660
		if (((View) getParent().getModel()).getElement() instanceof FigureMarker) {
661
			int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Width())).intValue();
662
			int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Height())).intValue();
663
			myNodeFigure.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(width, height));
664
		} else {
665
			super.refreshBounds();
666
		}
667
	}
668
}
653
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/Polyline2EditPart.java (-16 / +5 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 13-43 Link Here
13
import org.eclipse.draw2d.IFigure;
13
import org.eclipse.draw2d.IFigure;
14
import org.eclipse.draw2d.Polyline;
14
import org.eclipse.draw2d.Polyline;
15
import org.eclipse.draw2d.StackLayout;
15
import org.eclipse.draw2d.StackLayout;
16
17
import org.eclipse.gef.EditPart;
16
import org.eclipse.gef.EditPart;
18
import org.eclipse.gef.EditPolicy;
17
import org.eclipse.gef.EditPolicy;
19
import org.eclipse.gef.Request;
18
import org.eclipse.gef.Request;
20
21
import org.eclipse.gef.commands.Command;
19
import org.eclipse.gef.commands.Command;
22
23
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
20
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
24
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
21
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
25
26
import org.eclipse.gef.requests.CreateRequest;
22
import org.eclipse.gef.requests.CreateRequest;
27
28
import org.eclipse.gmf.graphdef.editor.edit.policies.Polyline2CanonicalEditPolicy;
29
import org.eclipse.gmf.graphdef.editor.edit.policies.Polyline2GraphicalNodeEditPolicy;
30
import org.eclipse.gmf.graphdef.editor.edit.policies.Polyline2ItemSemanticEditPolicy;
23
import org.eclipse.gmf.graphdef.editor.edit.policies.Polyline2ItemSemanticEditPolicy;
31
32
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
24
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
33
34
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
25
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
35
36
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
26
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
37
38
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
27
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
39
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
28
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
40
41
import org.eclipse.gmf.runtime.notation.View;
29
import org.eclipse.gmf.runtime.notation.View;
42
30
43
/**
31
/**
Lines 71-80 Link Here
71
	 * @generated
59
	 * @generated
72
	 */
60
	 */
73
	protected void createDefaultEditPolicies() {
61
	protected void createDefaultEditPolicies() {
62
74
		super.createDefaultEditPolicies();
63
		super.createDefaultEditPolicies();
75
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new Polyline2ItemSemanticEditPolicy());
64
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new Polyline2ItemSemanticEditPolicy());
76
		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new Polyline2GraphicalNodeEditPolicy());
77
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new Polyline2CanonicalEditPolicy());
78
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
65
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
79
	}
66
	}
80
67
Lines 101-106 Link Here
101
			}
88
			}
102
		};
89
		};
103
		return lep;
90
		return lep;
91
104
	}
92
	}
105
93
106
	/**
94
	/**
Lines 121-127 Link Here
121
	 * @generated
109
	 * @generated
122
	 */
110
	 */
123
	protected NodeFigure createNodePlate() {
111
	protected NodeFigure createNodePlate() {
124
		return new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
112
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
113
		return result;
125
	}
114
	}
126
115
127
	/**
116
	/**
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/ConnectionNameEditPart.java (-41 / +34 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-83 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
12
13
import org.eclipse.gef.EditPolicy;
13
import java.util.ArrayList;
14
import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
15
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
16
import org.eclipse.gmf.runtime.notation.View;
17
import java.util.Collections;
14
import java.util.Collections;
18
import java.util.List;
15
import java.util.List;
19
16
20
import org.eclipse.draw2d.IFigure;
17
import org.eclipse.draw2d.IFigure;
21
import org.eclipse.draw2d.Label;
18
import org.eclipse.draw2d.Label;
22
23
import org.eclipse.draw2d.geometry.Point;
19
import org.eclipse.draw2d.geometry.Point;
24
25
import org.eclipse.emf.common.notify.Notification;
20
import org.eclipse.emf.common.notify.Notification;
26
27
import org.eclipse.emf.ecore.EObject;
21
import org.eclipse.emf.ecore.EObject;
28
29
import org.eclipse.emf.transaction.RunnableWithResult;
22
import org.eclipse.emf.transaction.RunnableWithResult;
30
31
import org.eclipse.gef.AccessibleEditPart;
23
import org.eclipse.gef.AccessibleEditPart;
24
import org.eclipse.gef.EditPolicy;
25
import org.eclipse.gef.GraphicalEditPart;
32
import org.eclipse.gef.Request;
26
import org.eclipse.gef.Request;
33
27
import org.eclipse.gef.commands.Command;
28
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
29
import org.eclipse.gef.handles.NonResizableHandleKit;
34
import org.eclipse.gef.requests.DirectEditRequest;
30
import org.eclipse.gef.requests.DirectEditRequest;
35
36
import org.eclipse.gef.tools.DirectEditManager;
31
import org.eclipse.gef.tools.DirectEditManager;
37
38
import org.eclipse.gmf.graphdef.editor.edit.policies.GMFGraphTextSelectionEditPolicy;
32
import org.eclipse.gmf.graphdef.editor.edit.policies.GMFGraphTextSelectionEditPolicy;
39
40
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
41
42
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
33
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
43
44
import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
34
import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
45
import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
35
import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
46
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
36
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
47
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
37
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
48
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService;
38
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService;
49
50
import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
39
import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
51
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
40
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
52
41
import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
42
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
53
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
43
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
54
55
import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
44
import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
56
57
import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
45
import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
58
59
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
46
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
60
61
import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
47
import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
62
63
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
48
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
64
65
import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
49
import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
66
import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter;
50
import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter;
67
68
import org.eclipse.gmf.runtime.notation.FontStyle;
51
import org.eclipse.gmf.runtime.notation.FontStyle;
69
import org.eclipse.gmf.runtime.notation.NotationPackage;
52
import org.eclipse.gmf.runtime.notation.NotationPackage;
70
53
import org.eclipse.gmf.runtime.notation.View;
71
import org.eclipse.jface.resource.ImageDescriptor;
72
73
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
54
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
74
75
import org.eclipse.jface.viewers.ICellEditorValidator;
55
import org.eclipse.jface.viewers.ICellEditorValidator;
76
77
import org.eclipse.swt.SWT;
78
79
import org.eclipse.swt.accessibility.AccessibleEvent;
56
import org.eclipse.swt.accessibility.AccessibleEvent;
80
81
import org.eclipse.swt.graphics.Color;
57
import org.eclipse.swt.graphics.Color;
82
import org.eclipse.swt.graphics.FontData;
58
import org.eclipse.swt.graphics.FontData;
83
import org.eclipse.swt.graphics.Image;
59
import org.eclipse.swt.graphics.Image;
Lines 125-130 Link Here
125
	protected void createDefaultEditPolicies() {
101
	protected void createDefaultEditPolicies() {
126
		super.createDefaultEditPolicies();
102
		super.createDefaultEditPolicies();
127
		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
103
		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
104
		installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicy() {
105
106
			protected List createSelectionHandles() {
107
				List handles = new ArrayList();
108
				NonResizableHandleKit.addMoveHandle((GraphicalEditPart) getHost(), handles);
109
				return handles;
110
			}
111
112
			public Command getCommand(Request request) {
113
				return null;
114
			}
115
116
			public boolean understandsRequest(Request request) {
117
				return false;
118
			}
119
		});
128
	}
120
	}
129
121
130
	/**
122
	/**
Lines 208-218 Link Here
208
	 * @generated
200
	 * @generated
209
	 */
201
	 */
210
	protected Image getLabelIcon() {
202
	protected Image getLabelIcon() {
211
		ImageDescriptor descriptor = GMFGraphDiagramEditorPlugin.getInstance().getItemImageDescriptor(getParserElement());
203
		EObject parserElement = getParserElement();
212
		if (descriptor == null) {
204
		if (parserElement == null) {
213
			descriptor = ImageDescriptor.getMissingImageDescriptor();
205
			return null;
214
		}
206
		}
215
		return descriptor.createImage();
207
		return GMFGraphElementTypes.getImage(parserElement.eClass());
216
	}
208
	}
217
209
218
	/**
210
	/**
Lines 254-260 Link Here
254
	 * @generated
246
	 * @generated
255
	 */
247
	 */
256
	protected boolean isEditable() {
248
	protected boolean isEditable() {
257
		return getEditText() != null;
249
		return getParser() != null;
258
	}
250
	}
259
251
260
	/**
252
	/**
Lines 444-450 Link Here
444
	protected void refreshFont() {
436
	protected void refreshFont() {
445
		FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
437
		FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
446
		if (style != null) {
438
		if (style != null) {
447
			FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
439
			FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? org.eclipse.swt.SWT.BOLD : org.eclipse.swt.SWT.NORMAL)
440
					| (style.isItalic() ? org.eclipse.swt.SWT.ITALIC : org.eclipse.swt.SWT.NORMAL));
448
			setFont(fontData);
441
			setFont(fontData);
449
		}
442
		}
450
	}
443
	}
Lines 559-565 Link Here
559
	 * @generated
552
	 * @generated
560
	 */
553
	 */
561
	protected IFigure createFigure() {
554
	protected IFigure createFigure() {
562
		// Parent should assign one using setLabel method
555
		// Parent should assign one using setLabel() method
563
		return null;
556
		return null;
564
	}
557
	}
565
}
558
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/RectangleEditPart.java (-184 / +170 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 13-72 Link Here
13
import java.util.Collections;
13
import java.util.Collections;
14
14
15
import org.eclipse.core.commands.ExecutionException;
15
import org.eclipse.core.commands.ExecutionException;
16
17
import org.eclipse.core.runtime.IAdaptable;
16
import org.eclipse.core.runtime.IAdaptable;
18
import org.eclipse.core.runtime.IProgressMonitor;
17
import org.eclipse.core.runtime.IProgressMonitor;
19
import org.eclipse.core.runtime.IStatus;
18
import org.eclipse.core.runtime.IStatus;
20
import org.eclipse.core.runtime.NullProgressMonitor;
19
import org.eclipse.core.runtime.NullProgressMonitor;
21
import org.eclipse.core.runtime.Status;
20
import org.eclipse.core.runtime.Status;
22
23
import org.eclipse.draw2d.Figure;
21
import org.eclipse.draw2d.Figure;
24
import org.eclipse.draw2d.FreeformLayout;
22
import org.eclipse.draw2d.FreeformLayout;
25
import org.eclipse.draw2d.IFigure;
23
import org.eclipse.draw2d.IFigure;
26
import org.eclipse.draw2d.LayoutManager;
24
import org.eclipse.draw2d.LayoutManager;
27
import org.eclipse.draw2d.StackLayout;
25
import org.eclipse.draw2d.StackLayout;
28
26
import org.eclipse.draw2d.geometry.Point;
27
import org.eclipse.draw2d.geometry.Rectangle;
29
import org.eclipse.emf.common.notify.Notification;
28
import org.eclipse.emf.common.notify.Notification;
30
31
import org.eclipse.emf.transaction.Transaction;
29
import org.eclipse.emf.transaction.Transaction;
32
33
import org.eclipse.emf.workspace.AbstractEMFOperation;
30
import org.eclipse.emf.workspace.AbstractEMFOperation;
34
35
import org.eclipse.gef.EditPart;
31
import org.eclipse.gef.EditPart;
36
import org.eclipse.gef.EditPolicy;
32
import org.eclipse.gef.EditPolicy;
37
38
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
33
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
39
40
import org.eclipse.gmf.gmfgraph.ConstantColor;
34
import org.eclipse.gmf.gmfgraph.ConstantColor;
41
import org.eclipse.gmf.gmfgraph.Dimension;
35
import org.eclipse.gmf.gmfgraph.Dimension;
42
import org.eclipse.gmf.gmfgraph.FigureMarker;
36
import org.eclipse.gmf.gmfgraph.FigureMarker;
43
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
37
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
44
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
38
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
45
import org.eclipse.gmf.gmfgraph.Point;
46
import org.eclipse.gmf.gmfgraph.RGBColor;
39
import org.eclipse.gmf.gmfgraph.RGBColor;
47
import org.eclipse.gmf.gmfgraph.Rectangle;
48
import org.eclipse.gmf.gmfgraph.XYLayout;
40
import org.eclipse.gmf.gmfgraph.XYLayout;
49
import org.eclipse.gmf.gmfgraph.XYLayoutData;
41
import org.eclipse.gmf.gmfgraph.XYLayoutData;
50
51
import org.eclipse.gmf.graphdef.editor.edit.policies.RectangleCanonicalEditPolicy;
42
import org.eclipse.gmf.graphdef.editor.edit.policies.RectangleCanonicalEditPolicy;
52
import org.eclipse.gmf.graphdef.editor.edit.policies.RectangleGraphicalNodeEditPolicy;
53
import org.eclipse.gmf.graphdef.editor.edit.policies.RectangleItemSemanticEditPolicy;
43
import org.eclipse.gmf.graphdef.editor.edit.policies.RectangleItemSemanticEditPolicy;
54
55
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
44
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
56
57
import org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener;
45
import org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener;
58
59
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
46
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
60
61
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
47
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
62
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
48
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
63
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
49
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
64
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy;
50
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy;
65
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy;
51
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy;
66
67
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
52
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
68
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
53
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
69
70
import org.eclipse.gmf.runtime.notation.Bounds;
54
import org.eclipse.gmf.runtime.notation.Bounds;
71
import org.eclipse.gmf.runtime.notation.Node;
55
import org.eclipse.gmf.runtime.notation.Node;
72
import org.eclipse.gmf.runtime.notation.NotationPackage;
56
import org.eclipse.gmf.runtime.notation.NotationPackage;
Lines 91-119 Link Here
91
	/**
75
	/**
92
	 * @generated
76
	 * @generated
93
	 */
77
	 */
94
	private RectangleFigure myFigure;
78
	protected IFigure primaryShape;
95
79
96
	// TODO: use myFigure?
97
	/**
80
	/**
98
	 * @generated
81
	 * @generated
99
	 */
82
	 */
100
	protected Figure myNodeFigure;
83
	public RectangleEditPart(View view) {
84
		super(view);
85
	}
101
86
102
	/**
87
	/**
103
	 * @generated
88
	 * @generated
104
	 */
89
	 */
105
	protected IFigure primaryShape;
90
	protected void createDefaultEditPolicies() {
91
		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
92
93
		super.createDefaultEditPolicies();
94
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new RectangleItemSemanticEditPolicy());
95
		installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
96
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new RectangleCanonicalEditPolicy());
97
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
98
	}
106
99
107
	/**
100
	/**
108
	 * @generated
101
	 * @generated
109
	 */
102
	 */
110
	public RectangleEditPart(View view) {
103
	protected LayoutEditPolicy createLayoutEditPolicy() {
111
		super(view);
104
		XYLayoutEditPolicy lep = new XYLayoutEditPolicy() {
105
106
			protected EditPolicy createChildEditPolicy(EditPart child) {
107
				EditPolicy result = super.createChildEditPolicy(child);
108
				if (result == null) {
109
					return new ResizableShapeEditPolicy();
110
				}
111
				return result;
112
			}
113
114
			protected Point getLayoutOrigin() {
115
				return ((GraphicalEditPart) getHost()).getContentPane().getClientArea().getLocation();
116
			}
117
118
			protected Rectangle getCurrentConstraintFor(org.eclipse.gef.GraphicalEditPart child) {
119
				Rectangle result = super.getCurrentConstraintFor(child);
120
				if (result == null) {
121
					IFigure fig = child.getFigure();
122
					result = fig.getBounds().getCopy();
123
				}
124
				return result;
125
			}
126
127
		};
128
		return lep;
129
	}
130
131
	/**
132
	 * @generated
133
	 */
134
	protected IFigure createNodeShape() {
135
		RectangleFigure figure = new RectangleFigure();
136
		figure.setUseLocalCoordinates(true);
137
		myFigure = figure;
138
		org.eclipse.gmf.gmfgraph.Rectangle modelElement = (org.eclipse.gmf.gmfgraph.Rectangle) ((View) getModel()).getElement();
139
		if (modelElement != null) {
140
			{
141
				layoutDataChanged(modelElement.getLayoutData());
142
			}
143
			{
144
				layoutChanged(modelElement.getLayout());
145
			}
146
			{
147
				myFigure.setOutline(modelElement.isOutline());
148
			}
149
			{
150
				myFigure.setFill(modelElement.isFill());
151
			}
152
			{
153
				myFigure.setLineWidth(modelElement.getLineWidth());
154
			}
155
			{
156
				myFigure.setLineStyle(getLineStyle(modelElement.getLineKind()));
157
			}
158
			{
159
				myFigure.setFillXOR(modelElement.isXorFill());
160
			}
161
			{
162
				myFigure.setOutlineXOR(modelElement.isXorOutline());
163
			}
164
		}
165
		return primaryShape = figure;
166
	}
167
168
	/**
169
	 * @generated
170
	 */
171
	public RectangleFigure getPrimaryShape() {
172
		return (RectangleFigure) primaryShape;
112
	}
173
	}
113
174
114
	/**
175
	/**
115
	 * @generated
176
	 * @generated
116
	 */
177
	 */
178
	protected NodeFigure createNodePlate() {
179
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
180
		myNodeFigure = result;
181
		return result;
182
	}
183
184
	/**
185
	 * Creates figure for this edit part.
186
	 * 
187
	 * Body of this method does not depend on settings in generation model
188
	 * so you may safely remove <i>generated</i> tag and modify it.
189
	 * 
190
	 * @generated
191
	 */
192
	protected NodeFigure createNodeFigure() {
193
		NodeFigure figure = createNodePlate();
194
		figure.setLayoutManager(new StackLayout());
195
		IFigure shape = createNodeShape();
196
		figure.add(shape);
197
		contentPane = setupContentPane(shape);
198
		return figure;
199
	}
200
201
	/**
202
	 * Default implementation treats passed figure as content pane.
203
	 * Respects layout one may have set for generated figure.
204
	 * @param nodeShape instance of generated figure class
205
	 * @generated
206
	 */
207
	protected IFigure setupContentPane(IFigure nodeShape) {
208
		if (nodeShape.getLayoutManager() == null) {
209
			nodeShape.setLayoutManager(new FreeformLayout() {
210
211
				public Object getConstraint(IFigure figure) {
212
					Object result = constraints.get(figure);
213
					if (result == null) {
214
						result = new Rectangle(0, 0, -1, -1);
215
					}
216
					return result;
217
				}
218
			});
219
		}
220
		return nodeShape; // use nodeShape itself as contentPane
221
	}
222
223
	/**
224
	 * @generated
225
	 */
226
	public IFigure getContentPane() {
227
		if (contentPane != null) {
228
			return contentPane;
229
		}
230
		return super.getContentPane();
231
	}
232
233
	/**
234
	 * @generated
235
	 */
236
	private RectangleFigure myFigure;
237
238
	// TODO: use myFigure?
239
	/**
240
	 * @generated
241
	 */
242
	protected Figure myNodeFigure;
243
244
	/**
245
	 * @generated
246
	 */
117
	public void activate() {
247
	public void activate() {
118
		if (isActive()) {
248
		if (isActive()) {
119
			return;
249
			return;
Lines 124-130 Link Here
124
			return;
254
			return;
125
		}
255
		}
126
256
127
		final Rectangle modelElement = (Rectangle) view.getElement();
257
		final org.eclipse.gmf.gmfgraph.Rectangle modelElement = (org.eclipse.gmf.gmfgraph.Rectangle) view.getElement();
128
258
129
		final NotificationListener Layoutable_LayoutData_PropertiesListener = new NotificationListener() {
259
		final NotificationListener Layoutable_LayoutData_PropertiesListener = new NotificationListener() {
130
260
Lines 256-262 Link Here
256
								dim = GMFGraphFactory.eINSTANCE.createDimension();
386
								dim = GMFGraphFactory.eINSTANCE.createDimension();
257
								modelElement.setPreferredSize(dim);
387
								modelElement.setPreferredSize(dim);
258
							}
388
							}
259
							Point location = modelElement.getLocation();
389
							org.eclipse.gmf.gmfgraph.Point location = modelElement.getLocation();
260
							if (location == null) {
390
							if (location == null) {
261
								location = GMFGraphFactory.eINSTANCE.createPoint();
391
								location = GMFGraphFactory.eINSTANCE.createPoint();
262
								modelElement.setLocation(location);
392
								modelElement.setLocation(location);
Lines 276-282 Link Here
276
							}
406
							}
277
407
278
							myNodeFigure.setPreferredSize(bounds.getWidth(), bounds.getHeight());
408
							myNodeFigure.setPreferredSize(bounds.getWidth(), bounds.getHeight());
279
							myNodeFigure.setLocation(new org.eclipse.draw2d.geometry.Point(bounds.getX(), bounds.getY()));
409
							myNodeFigure.setLocation(new Point(bounds.getX(), bounds.getY()));
280
410
281
							if (modelElement.getLayoutData() instanceof XYLayoutData || (modelElement.getParent() != null && modelElement.getParent().getLayout() instanceof XYLayout)) {
411
							if (modelElement.getLayoutData() instanceof XYLayoutData || (modelElement.getParent() != null && modelElement.getParent().getLayout() instanceof XYLayout)) {
282
								XYLayoutData xyLayoutData = (XYLayoutData) modelElement.getLayoutData();
412
								XYLayoutData xyLayoutData = (XYLayoutData) modelElement.getLayoutData();
Lines 290-296 Link Here
290
									xyLayoutData.getSize().setDx(40);
420
									xyLayoutData.getSize().setDx(40);
291
									xyLayoutData.getSize().setDy(40);
421
									xyLayoutData.getSize().setDy(40);
292
								}
422
								}
293
								Point topLeft;
423
								org.eclipse.gmf.gmfgraph.Point topLeft;
294
								if (xyLayoutData.getTopLeft() != null) {
424
								if (xyLayoutData.getTopLeft() != null) {
295
									topLeft = xyLayoutData.getTopLeft();
425
									topLeft = xyLayoutData.getTopLeft();
296
								} else {
426
								} else {
Lines 451-596 Link Here
451
	/**
581
	/**
452
	 * @generated
582
	 * @generated
453
	 */
583
	 */
454
	protected void createDefaultEditPolicies() {
584
	protected LayoutManager getFigureLayoutManager() {
455
		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
585
		return myFigure.getLayoutManager();
456
		super.createDefaultEditPolicies();
457
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new RectangleItemSemanticEditPolicy());
458
		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new RectangleGraphicalNodeEditPolicy());
459
		installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
460
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new RectangleCanonicalEditPolicy());
461
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
462
	}
463
464
	/**
465
	 * @generated
466
	 */
467
	protected LayoutEditPolicy createLayoutEditPolicy() {
468
		XYLayoutEditPolicy lep = new XYLayoutEditPolicy() {
469
470
			protected EditPolicy createChildEditPolicy(EditPart child) {
471
				EditPolicy result = super.createChildEditPolicy(child);
472
				if (result == null) {
473
					return new ResizableShapeEditPolicy();
474
				}
475
				return result;
476
			}
477
478
			protected org.eclipse.draw2d.geometry.Point getLayoutOrigin() {
479
				return ((GraphicalEditPart) getHost()).getContentPane().getClientArea().getLocation();
480
			}
481
482
			protected org.eclipse.draw2d.geometry.Rectangle getCurrentConstraintFor(org.eclipse.gef.GraphicalEditPart child) {
483
				org.eclipse.draw2d.geometry.Rectangle result = super.getCurrentConstraintFor(child);
484
				if (result == null) {
485
					IFigure fig = child.getFigure();
486
					result = fig.getBounds().getCopy();
487
				}
488
				return result;
489
			}
490
491
		};
492
		return lep;
493
	}
494
495
	/**
496
	 * @generated
497
	 */
498
	protected IFigure createNodeShape() {
499
		RectangleFigure figure = new RectangleFigure();
500
		figure.setUseLocalCoordinates(true);
501
		myFigure = figure;
502
		Rectangle modelElement = (Rectangle) ((View) getModel()).getElement();
503
		if (modelElement != null) {
504
			{
505
				layoutDataChanged(modelElement.getLayoutData());
506
			}
507
			{
508
				layoutChanged(modelElement.getLayout());
509
			}
510
			{
511
				myFigure.setOutline(modelElement.isOutline());
512
			}
513
			{
514
				myFigure.setFill(modelElement.isFill());
515
			}
516
			{
517
				myFigure.setLineWidth(modelElement.getLineWidth());
518
			}
519
			{
520
				myFigure.setLineStyle(getLineStyle(modelElement.getLineKind()));
521
			}
522
			{
523
				myFigure.setFillXOR(modelElement.isXorFill());
524
			}
525
			{
526
				myFigure.setOutlineXOR(modelElement.isXorOutline());
527
			}
528
		}
529
		return primaryShape = figure;
530
	}
531
532
	/**
533
	 * @generated
534
	 */
535
	public RectangleFigure getPrimaryShape() {
536
		return (RectangleFigure) primaryShape;
537
	}
538
539
	/**
540
	 * @generated
541
	 */
542
	protected NodeFigure createNodePlate() {
543
		return new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
544
	}
545
546
	/**
547
	 * Creates figure for this edit part.
548
	 * 
549
	 * Body of this method does not depend on settings in generation model
550
	 * so you may safely remove <i>generated</i> tag and modify it.
551
	 * 
552
	 * @generated
553
	 */
554
	protected NodeFigure createNodeFigure() {
555
		NodeFigure figure = createNodePlate();
556
		myNodeFigure = figure;
557
		figure.setLayoutManager(new StackLayout());
558
		IFigure shape = createNodeShape();
559
		figure.add(shape);
560
		contentPane = setupContentPane(shape);
561
		return figure;
562
	}
586
	}
563
587
564
	/**
588
	/**
565
	 * Default implementation treats passed figure as content pane.
566
	 * Respects layout one may have set for generated figure.
567
	 * @param nodeShape instance of generated figure class
568
	 * @generated
589
	 * @generated
569
	 */
590
	 */
570
	protected IFigure setupContentPane(IFigure nodeShape) {
591
	protected void setFigureLayoutManager(LayoutManager layoutManager) {
571
		if (nodeShape.getLayoutManager() == null) {
592
		myFigure.setLayoutManager(layoutManager);
572
			nodeShape.setLayoutManager(new FreeformLayout() {
573
574
				public Object getConstraint(IFigure figure) {
575
					Object result = constraints.get(figure);
576
					if (result == null) {
577
						result = new org.eclipse.draw2d.geometry.Rectangle(0, 0, -1, -1);
578
					}
579
					return result;
580
				}
581
			});
582
		}
583
		return nodeShape; // use nodeShape itself as contentPane
584
	}
593
	}
585
594
586
	/**
595
	/**
587
	 * @generated
596
	 * @generated
588
	 */
597
	 */
589
	public IFigure getContentPane() {
598
	protected void refreshBounds() {
590
		if (contentPane != null) {
599
		if (((View) getParent().getModel()).getElement() instanceof FigureMarker) {
591
			return contentPane;
600
			int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Width())).intValue();
601
			int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Height())).intValue();
602
			myNodeFigure.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(width, height));
603
		} else {
604
			super.refreshBounds();
592
		}
605
		}
593
		return super.getContentPane();
594
	}
606
	}
595
607
596
	/**
608
	/**
Lines 637-666 Link Here
637
649
638
	}
650
	}
639
651
640
	/**
641
	 * @generated
642
	 */
643
	protected LayoutManager getFigureLayoutManager() {
644
		return myFigure.getLayoutManager();
645
	}
646
647
	/**
648
	 * @generated
649
	 */
650
	protected void setFigureLayoutManager(LayoutManager layoutManager) {
651
		myFigure.setLayoutManager(layoutManager);
652
	}
653
654
	/**
655
	 * @generated
656
	 */
657
	protected void refreshBounds() {
658
		if (((View) getParent().getModel()).getElement() instanceof FigureMarker) {
659
			int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Width())).intValue();
660
			int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Height())).intValue();
661
			myNodeFigure.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(width, height));
662
		} else {
663
			super.refreshBounds();
664
		}
665
	}
666
}
652
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/CompartmentEditPart.java (-36 / +50 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 11-44 Link Here
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
12
13
import org.eclipse.draw2d.IFigure;
13
import org.eclipse.draw2d.IFigure;
14
import org.eclipse.draw2d.RectangleFigure;
14
import org.eclipse.draw2d.StackLayout;
15
import org.eclipse.draw2d.StackLayout;
15
16
import org.eclipse.emf.common.notify.Notification;
17
import org.eclipse.emf.ecore.EcorePackage;
16
import org.eclipse.gef.EditPart;
18
import org.eclipse.gef.EditPart;
17
import org.eclipse.gef.EditPolicy;
19
import org.eclipse.gef.EditPolicy;
18
import org.eclipse.gef.Request;
20
import org.eclipse.gef.Request;
19
20
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.Command;
21
22
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
22
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
23
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
23
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
24
25
import org.eclipse.gef.requests.CreateRequest;
24
import org.eclipse.gef.requests.CreateRequest;
26
27
import org.eclipse.gmf.graphdef.editor.edit.policies.CompartmentCanonicalEditPolicy;
28
import org.eclipse.gmf.graphdef.editor.edit.policies.CompartmentGraphicalNodeEditPolicy;
29
import org.eclipse.gmf.graphdef.editor.edit.policies.CompartmentItemSemanticEditPolicy;
25
import org.eclipse.gmf.graphdef.editor.edit.policies.CompartmentItemSemanticEditPolicy;
30
31
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
26
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
32
27
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
33
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
28
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
34
35
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
29
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
36
37
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
30
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
38
31
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
39
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
32
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
40
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
33
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
41
42
import org.eclipse.gmf.runtime.notation.View;
34
import org.eclipse.gmf.runtime.notation.View;
43
35
44
/**
36
/**
Lines 72-81 Link Here
72
	 * @generated
64
	 * @generated
73
	 */
65
	 */
74
	protected void createDefaultEditPolicies() {
66
	protected void createDefaultEditPolicies() {
67
75
		super.createDefaultEditPolicies();
68
		super.createDefaultEditPolicies();
76
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new CompartmentItemSemanticEditPolicy());
69
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new CompartmentItemSemanticEditPolicy());
77
		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new CompartmentGraphicalNodeEditPolicy());
78
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new CompartmentCanonicalEditPolicy());
79
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
70
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
80
	}
71
	}
81
72
Lines 83-88 Link Here
83
	 * @generated
74
	 * @generated
84
	 */
75
	 */
85
	protected LayoutEditPolicy createLayoutEditPolicy() {
76
	protected LayoutEditPolicy createLayoutEditPolicy() {
77
86
		LayoutEditPolicy lep = new LayoutEditPolicy() {
78
		LayoutEditPolicy lep = new LayoutEditPolicy() {
87
79
88
			protected EditPolicy createChildEditPolicy(EditPart child) {
80
			protected EditPolicy createChildEditPolicy(EditPart child) {
Lines 102-107 Link Here
102
			}
94
			}
103
		};
95
		};
104
		return lep;
96
		return lep;
97
105
	}
98
	}
106
99
107
	/**
100
	/**
Lines 134-147 Link Here
134
	 * @generated
127
	 * @generated
135
	 */
128
	 */
136
	protected boolean removeFixedChild(EditPart childEditPart) {
129
	protected boolean removeFixedChild(EditPart childEditPart) {
130
137
		return false;
131
		return false;
138
	}
132
	}
139
133
140
	/**
134
	/**
141
	 * @generated
135
	 * @generated
142
	 */
136
	 */
137
	protected void addChildVisual(EditPart childEditPart, int index) {
138
		if (addFixedChild(childEditPart)) {
139
			return;
140
		}
141
		super.addChildVisual(childEditPart, -1);
142
	}
143
144
	/**
145
	 * @generated
146
	 */
147
	protected void removeChildVisual(EditPart childEditPart) {
148
		if (removeFixedChild(childEditPart)) {
149
			return;
150
		}
151
		super.removeChildVisual(childEditPart);
152
	}
153
154
	/**
155
	 * @generated
156
	 */
157
	protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
158
159
		return super.getContentPaneFor(editPart);
160
	}
161
162
	/**
163
	 * @generated
164
	 */
143
	protected NodeFigure createNodePlate() {
165
	protected NodeFigure createNodePlate() {
144
		return new DefaultSizeNodeFigure(getMapMode().DPtoLP(40), getMapMode().DPtoLP(40));
166
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(40), getMapMode().DPtoLP(40));
167
		return result;
145
	}
168
	}
146
169
147
	/**
170
	/**
Lines 196-222 Link Here
196
	/**
219
	/**
197
	 * @generated
220
	 * @generated
198
	 */
221
	 */
199
	protected void addChildVisual(EditPart childEditPart, int index) {
222
	protected void handleNotificationEvent(Notification event) {
200
		if (addFixedChild(childEditPart)) {
223
		if (event.getNotifier() == getModel() && EcorePackage.eINSTANCE.getEModelElement_EAnnotations().equals(event.getFeature())) {
201
			return;
224
			handleMajorSemanticChange();
225
		} else {
226
			super.handleNotificationEvent(event);
202
		}
227
		}
203
		super.addChildVisual(childEditPart, -1);
204
	}
205
206
	/**
207
	 * @generated
208
	 */
209
	protected void removeChildVisual(EditPart childEditPart) {
210
		if (removeFixedChild(childEditPart)) {
211
			return;
212
		}
213
		super.removeChildVisual(childEditPart);
214
	}
228
	}
215
229
216
	/**
230
	/**
217
	 * @generated
231
	 * @generated
218
	 */
232
	 */
219
	public class DiagramElementFigure extends org.eclipse.draw2d.RectangleFigure {
233
	public class DiagramElementFigure extends RectangleFigure {
220
234
221
		/**
235
		/**
222
		 * @generated
236
		 * @generated
Lines 230-236 Link Here
230
		 * @generated
244
		 * @generated
231
		 */
245
		 */
232
		private void createContents() {
246
		private void createContents() {
233
			org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel();
247
			WrapLabel fig_0 = new WrapLabel();
234
248
235
			setFigureDiagramElementFigure_NameLabel(fig_0);
249
			setFigureDiagramElementFigure_NameLabel(fig_0);
236
250
Lines 242-260 Link Here
242
		/**
256
		/**
243
		 * @generated
257
		 * @generated
244
		 */
258
		 */
245
		private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fDiagramElementFigure_NameLabel;
259
		private WrapLabel fDiagramElementFigure_NameLabel;
246
260
247
		/**
261
		/**
248
		 * @generated
262
		 * @generated
249
		 */
263
		 */
250
		public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureDiagramElementFigure_NameLabel() {
264
		public WrapLabel getFigureDiagramElementFigure_NameLabel() {
251
			return fDiagramElementFigure_NameLabel;
265
			return fDiagramElementFigure_NameLabel;
252
		}
266
		}
253
267
254
		/**
268
		/**
255
		 * @generated
269
		 * @generated
256
		 */
270
		 */
257
		private void setFigureDiagramElementFigure_NameLabel(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig) {
271
		private void setFigureDiagramElementFigure_NameLabel(WrapLabel fig) {
258
			fDiagramElementFigure_NameLabel = fig;
272
			fDiagramElementFigure_NameLabel = fig;
259
		}
273
		}
260
274
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/GMFGraphEditPartFactory.java (-27 / +37 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 11-30 Link Here
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
12
13
import org.eclipse.draw2d.FigureUtilities;
13
import org.eclipse.draw2d.FigureUtilities;
14
import org.eclipse.draw2d.IFigure;
15
import org.eclipse.draw2d.Label;
14
import org.eclipse.draw2d.Label;
16
import org.eclipse.draw2d.geometry.Dimension;
15
import org.eclipse.draw2d.geometry.Dimension;
17
import org.eclipse.draw2d.geometry.Rectangle;
16
import org.eclipse.draw2d.geometry.Rectangle;
18
import org.eclipse.gef.EditPart;
17
import org.eclipse.gef.EditPart;
19
import org.eclipse.gef.EditPartFactory;
18
import org.eclipse.gef.EditPartFactory;
20
import org.eclipse.gef.tools.CellEditorLocator;
19
import org.eclipse.gef.tools.CellEditorLocator;
20
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
21
import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
21
import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
22
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
22
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
23
import org.eclipse.gmf.runtime.notation.View;
23
import org.eclipse.gmf.runtime.notation.View;
24
import org.eclipse.jface.viewers.CellEditor;
24
import org.eclipse.jface.viewers.CellEditor;
25
import org.eclipse.swt.SWT;
26
import org.eclipse.swt.widgets.Text;
25
import org.eclipse.swt.widgets.Text;
27
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
28
26
29
/**
27
/**
30
 * @generated
28
 * @generated
Lines 34-91 Link Here
34
	/**
32
	/**
35
	 * @generated
33
	 * @generated
36
	 */
34
	 */
37
	public static final String EXTERNAL_NODE_LABELS_LAYER = "External Node Labels"; //$NON-NLS-1$
38
39
	/**
40
	 * @generated
41
	 */
42
	public EditPart createEditPart(EditPart context, Object model) {
35
	public EditPart createEditPart(EditPart context, Object model) {
43
		if (model instanceof View) {
36
		if (model instanceof View) {
44
			View view = (View) model;
37
			View view = (View) model;
45
			int viewVisualID = GMFGraphVisualIDRegistry.getVisualID(view);
38
			switch (GMFGraphVisualIDRegistry.getVisualID(view)) {
46
			switch (viewVisualID) {
39
40
			case CanvasEditPart.VISUAL_ID:
41
				return new CanvasEditPart(view);
42
47
			case CompartmentEditPart.VISUAL_ID:
43
			case CompartmentEditPart.VISUAL_ID:
48
				return new CompartmentEditPart(view);
44
				return new CompartmentEditPart(view);
45
49
			case CompartmentNameEditPart.VISUAL_ID:
46
			case CompartmentNameEditPart.VISUAL_ID:
50
				return new CompartmentNameEditPart(view);
47
				return new CompartmentNameEditPart(view);
48
51
			case NodeEditPart.VISUAL_ID:
49
			case NodeEditPart.VISUAL_ID:
52
				return new NodeEditPart(view);
50
				return new NodeEditPart(view);
51
53
			case NodeNameEditPart.VISUAL_ID:
52
			case NodeNameEditPart.VISUAL_ID:
54
				return new NodeNameEditPart(view);
53
				return new NodeNameEditPart(view);
54
55
			case ConnectionEditPart.VISUAL_ID:
55
			case ConnectionEditPart.VISUAL_ID:
56
				return new ConnectionEditPart(view);
56
				return new ConnectionEditPart(view);
57
57
			case ConnectionNameEditPart.VISUAL_ID:
58
			case ConnectionNameEditPart.VISUAL_ID:
58
				return new ConnectionNameEditPart(view);
59
				return new ConnectionNameEditPart(view);
60
59
			case FigureGalleryEditPart.VISUAL_ID:
61
			case FigureGalleryEditPart.VISUAL_ID:
60
				return new FigureGalleryEditPart(view);
62
				return new FigureGalleryEditPart(view);
63
61
			case FigureGalleryNameEditPart.VISUAL_ID:
64
			case FigureGalleryNameEditPart.VISUAL_ID:
62
				return new FigureGalleryNameEditPart(view);
65
				return new FigureGalleryNameEditPart(view);
66
63
			case RectangleEditPart.VISUAL_ID:
67
			case RectangleEditPart.VISUAL_ID:
64
				return new RectangleEditPart(view);
68
				return new RectangleEditPart(view);
69
65
			case Rectangle2EditPart.VISUAL_ID:
70
			case Rectangle2EditPart.VISUAL_ID:
66
				return new Rectangle2EditPart(view);
71
				return new Rectangle2EditPart(view);
72
67
			case EllipseEditPart.VISUAL_ID:
73
			case EllipseEditPart.VISUAL_ID:
68
				return new EllipseEditPart(view);
74
				return new EllipseEditPart(view);
75
69
			case RoundedRectangleEditPart.VISUAL_ID:
76
			case RoundedRectangleEditPart.VISUAL_ID:
70
				return new RoundedRectangleEditPart(view);
77
				return new RoundedRectangleEditPart(view);
78
71
			case PolylineEditPart.VISUAL_ID:
79
			case PolylineEditPart.VISUAL_ID:
72
				return new PolylineEditPart(view);
80
				return new PolylineEditPart(view);
81
73
			case Ellipse2EditPart.VISUAL_ID:
82
			case Ellipse2EditPart.VISUAL_ID:
74
				return new Ellipse2EditPart(view);
83
				return new Ellipse2EditPart(view);
84
75
			case RoundedRectangle2EditPart.VISUAL_ID:
85
			case RoundedRectangle2EditPart.VISUAL_ID:
76
				return new RoundedRectangle2EditPart(view);
86
				return new RoundedRectangle2EditPart(view);
87
77
			case Polyline2EditPart.VISUAL_ID:
88
			case Polyline2EditPart.VISUAL_ID:
78
				return new Polyline2EditPart(view);
89
				return new Polyline2EditPart(view);
90
79
			case CompartmentVisualFacetsEditPart.VISUAL_ID:
91
			case CompartmentVisualFacetsEditPart.VISUAL_ID:
80
				return new CompartmentVisualFacetsEditPart(view);
92
				return new CompartmentVisualFacetsEditPart(view);
93
81
			case NodeVisualFacetsEditPart.VISUAL_ID:
94
			case NodeVisualFacetsEditPart.VISUAL_ID:
82
				return new NodeVisualFacetsEditPart(view);
95
				return new NodeVisualFacetsEditPart(view);
96
83
			case ConnectionVisualFacetsEditPart.VISUAL_ID:
97
			case ConnectionVisualFacetsEditPart.VISUAL_ID:
84
				return new ConnectionVisualFacetsEditPart(view);
98
				return new ConnectionVisualFacetsEditPart(view);
99
85
			case FigureGalleryFiguresEditPart.VISUAL_ID:
100
			case FigureGalleryFiguresEditPart.VISUAL_ID:
86
				return new FigureGalleryFiguresEditPart(view);
101
				return new FigureGalleryFiguresEditPart(view);
87
			case CanvasEditPart.VISUAL_ID:
102
88
				return new CanvasEditPart(view);
89
			case DiagramElementFigureEditPart.VISUAL_ID:
103
			case DiagramElementFigureEditPart.VISUAL_ID:
90
				return new DiagramElementFigureEditPart(view);
104
				return new DiagramElementFigureEditPart(view);
91
			}
105
			}
Lines 108-115 Link Here
108
		if (source.getFigure() instanceof WrapLabel)
122
		if (source.getFigure() instanceof WrapLabel)
109
			return new TextCellEditorLocator((WrapLabel) source.getFigure());
123
			return new TextCellEditorLocator((WrapLabel) source.getFigure());
110
		else {
124
		else {
111
			IFigure figure = source.getFigure();
125
			return new LabelCellEditorLocator((Label) source.getFigure());
112
			return new LabelCellEditorLocator((Label) figure);
113
		}
126
		}
114
	}
127
	}
115
128
Lines 127-133 Link Here
127
		 * @generated
140
		 * @generated
128
		 */
141
		 */
129
		public TextCellEditorLocator(WrapLabel wrapLabel) {
142
		public TextCellEditorLocator(WrapLabel wrapLabel) {
130
			super();
131
			this.wrapLabel = wrapLabel;
143
			this.wrapLabel = wrapLabel;
132
		}
144
		}
133
145
Lines 145-160 Link Here
145
			Text text = (Text) celleditor.getControl();
157
			Text text = (Text) celleditor.getControl();
146
			Rectangle rect = getWrapLabel().getTextBounds().getCopy();
158
			Rectangle rect = getWrapLabel().getTextBounds().getCopy();
147
			getWrapLabel().translateToAbsolute(rect);
159
			getWrapLabel().translateToAbsolute(rect);
148
160
			if (getWrapLabel().isTextWrapped() && getWrapLabel().getText().length() > 0) {
149
			if (getWrapLabel().isTextWrapped() && getWrapLabel().getText().length() > 0)
161
				rect.setSize(new Dimension(text.computeSize(rect.width, org.eclipse.swt.SWT.DEFAULT)));
150
				rect.setSize(new Dimension(text.computeSize(rect.width, SWT.DEFAULT)));
162
			} else {
151
			else {
152
				int avr = FigureUtilities.getFontMetrics(text.getFont()).getAverageCharWidth();
163
				int avr = FigureUtilities.getFontMetrics(text.getFont()).getAverageCharWidth();
153
				rect.setSize(new Dimension(text.computeSize(SWT.DEFAULT, SWT.DEFAULT)).expand(avr * 2, 0));
164
				rect.setSize(new Dimension(text.computeSize(org.eclipse.swt.SWT.DEFAULT, org.eclipse.swt.SWT.DEFAULT)).expand(avr * 2, 0));
154
			}
165
			}
155
166
			if (!rect.equals(new Rectangle(text.getBounds()))) {
156
			if (!rect.equals(new Rectangle(text.getBounds())))
157
				text.setBounds(rect.x, rect.y, rect.width, rect.height);
167
				text.setBounds(rect.x, rect.y, rect.width, rect.height);
168
			}
158
		}
169
		}
159
170
160
	}
171
	}
Lines 190-201 Link Here
190
			Text text = (Text) celleditor.getControl();
201
			Text text = (Text) celleditor.getControl();
191
			Rectangle rect = getLabel().getTextBounds().getCopy();
202
			Rectangle rect = getLabel().getTextBounds().getCopy();
192
			getLabel().translateToAbsolute(rect);
203
			getLabel().translateToAbsolute(rect);
193
194
			int avr = FigureUtilities.getFontMetrics(text.getFont()).getAverageCharWidth();
204
			int avr = FigureUtilities.getFontMetrics(text.getFont()).getAverageCharWidth();
195
			rect.setSize(new Dimension(text.computeSize(SWT.DEFAULT, SWT.DEFAULT)).expand(avr * 2, 0));
205
			rect.setSize(new Dimension(text.computeSize(org.eclipse.swt.SWT.DEFAULT, org.eclipse.swt.SWT.DEFAULT)).expand(avr * 2, 0));
196
206
			if (!rect.equals(new Rectangle(text.getBounds()))) {
197
			if (!rect.equals(new Rectangle(text.getBounds())))
198
				text.setBounds(rect.x, rect.y, rect.width, rect.height);
207
				text.setBounds(rect.x, rect.y, rect.width, rect.height);
208
			}
199
		}
209
		}
200
	}
210
	}
201
}
211
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/ConnectionEditPart.java (-36 / +50 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 11-44 Link Here
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
11
package org.eclipse.gmf.graphdef.editor.edit.parts;
12
12
13
import org.eclipse.draw2d.IFigure;
13
import org.eclipse.draw2d.IFigure;
14
import org.eclipse.draw2d.RectangleFigure;
14
import org.eclipse.draw2d.StackLayout;
15
import org.eclipse.draw2d.StackLayout;
15
16
import org.eclipse.emf.common.notify.Notification;
17
import org.eclipse.emf.ecore.EcorePackage;
16
import org.eclipse.gef.EditPart;
18
import org.eclipse.gef.EditPart;
17
import org.eclipse.gef.EditPolicy;
19
import org.eclipse.gef.EditPolicy;
18
import org.eclipse.gef.Request;
20
import org.eclipse.gef.Request;
19
20
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.Command;
21
22
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
22
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
23
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
23
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
24
25
import org.eclipse.gef.requests.CreateRequest;
24
import org.eclipse.gef.requests.CreateRequest;
26
27
import org.eclipse.gmf.graphdef.editor.edit.policies.ConnectionCanonicalEditPolicy;
28
import org.eclipse.gmf.graphdef.editor.edit.policies.ConnectionGraphicalNodeEditPolicy;
29
import org.eclipse.gmf.graphdef.editor.edit.policies.ConnectionItemSemanticEditPolicy;
25
import org.eclipse.gmf.graphdef.editor.edit.policies.ConnectionItemSemanticEditPolicy;
30
31
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
26
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
32
27
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
33
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
28
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
34
35
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
29
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
36
37
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
30
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
38
31
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
39
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
32
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
40
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
33
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
41
42
import org.eclipse.gmf.runtime.notation.View;
34
import org.eclipse.gmf.runtime.notation.View;
43
35
44
/**
36
/**
Lines 72-81 Link Here
72
	 * @generated
64
	 * @generated
73
	 */
65
	 */
74
	protected void createDefaultEditPolicies() {
66
	protected void createDefaultEditPolicies() {
67
75
		super.createDefaultEditPolicies();
68
		super.createDefaultEditPolicies();
76
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new ConnectionItemSemanticEditPolicy());
69
		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new ConnectionItemSemanticEditPolicy());
77
		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new ConnectionGraphicalNodeEditPolicy());
78
		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new ConnectionCanonicalEditPolicy());
79
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
70
		installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
80
	}
71
	}
81
72
Lines 83-88 Link Here
83
	 * @generated
74
	 * @generated
84
	 */
75
	 */
85
	protected LayoutEditPolicy createLayoutEditPolicy() {
76
	protected LayoutEditPolicy createLayoutEditPolicy() {
77
86
		LayoutEditPolicy lep = new LayoutEditPolicy() {
78
		LayoutEditPolicy lep = new LayoutEditPolicy() {
87
79
88
			protected EditPolicy createChildEditPolicy(EditPart child) {
80
			protected EditPolicy createChildEditPolicy(EditPart child) {
Lines 102-107 Link Here
102
			}
94
			}
103
		};
95
		};
104
		return lep;
96
		return lep;
97
105
	}
98
	}
106
99
107
	/**
100
	/**
Lines 134-147 Link Here
134
	 * @generated
127
	 * @generated
135
	 */
128
	 */
136
	protected boolean removeFixedChild(EditPart childEditPart) {
129
	protected boolean removeFixedChild(EditPart childEditPart) {
130
137
		return false;
131
		return false;
138
	}
132
	}
139
133
140
	/**
134
	/**
141
	 * @generated
135
	 * @generated
142
	 */
136
	 */
137
	protected void addChildVisual(EditPart childEditPart, int index) {
138
		if (addFixedChild(childEditPart)) {
139
			return;
140
		}
141
		super.addChildVisual(childEditPart, -1);
142
	}
143
144
	/**
145
	 * @generated
146
	 */
147
	protected void removeChildVisual(EditPart childEditPart) {
148
		if (removeFixedChild(childEditPart)) {
149
			return;
150
		}
151
		super.removeChildVisual(childEditPart);
152
	}
153
154
	/**
155
	 * @generated
156
	 */
157
	protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
158
159
		return super.getContentPaneFor(editPart);
160
	}
161
162
	/**
163
	 * @generated
164
	 */
143
	protected NodeFigure createNodePlate() {
165
	protected NodeFigure createNodePlate() {
144
		return new DefaultSizeNodeFigure(getMapMode().DPtoLP(40), getMapMode().DPtoLP(40));
166
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(40), getMapMode().DPtoLP(40));
167
		return result;
145
	}
168
	}
146
169
147
	/**
170
	/**
Lines 196-222 Link Here
196
	/**
219
	/**
197
	 * @generated
220
	 * @generated
198
	 */
221
	 */
199
	protected void addChildVisual(EditPart childEditPart, int index) {
222
	protected void handleNotificationEvent(Notification event) {
200
		if (addFixedChild(childEditPart)) {
223
		if (event.getNotifier() == getModel() && EcorePackage.eINSTANCE.getEModelElement_EAnnotations().equals(event.getFeature())) {
201
			return;
224
			handleMajorSemanticChange();
225
		} else {
226
			super.handleNotificationEvent(event);
202
		}
227
		}
203
		super.addChildVisual(childEditPart, -1);
204
	}
205
206
	/**
207
	 * @generated
208
	 */
209
	protected void removeChildVisual(EditPart childEditPart) {
210
		if (removeFixedChild(childEditPart)) {
211
			return;
212
		}
213
		super.removeChildVisual(childEditPart);
214
	}
228
	}
215
229
216
	/**
230
	/**
217
	 * @generated
231
	 * @generated
218
	 */
232
	 */
219
	public class DiagramElementFigure extends org.eclipse.draw2d.RectangleFigure {
233
	public class DiagramElementFigure extends RectangleFigure {
220
234
221
		/**
235
		/**
222
		 * @generated
236
		 * @generated
Lines 230-236 Link Here
230
		 * @generated
244
		 * @generated
231
		 */
245
		 */
232
		private void createContents() {
246
		private void createContents() {
233
			org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel();
247
			WrapLabel fig_0 = new WrapLabel();
234
248
235
			setFigureDiagramElementFigure_NameLabel(fig_0);
249
			setFigureDiagramElementFigure_NameLabel(fig_0);
236
250
Lines 242-260 Link Here
242
		/**
256
		/**
243
		 * @generated
257
		 * @generated
244
		 */
258
		 */
245
		private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fDiagramElementFigure_NameLabel;
259
		private WrapLabel fDiagramElementFigure_NameLabel;
246
260
247
		/**
261
		/**
248
		 * @generated
262
		 * @generated
249
		 */
263
		 */
250
		public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureDiagramElementFigure_NameLabel() {
264
		public WrapLabel getFigureDiagramElementFigure_NameLabel() {
251
			return fDiagramElementFigure_NameLabel;
265
			return fDiagramElementFigure_NameLabel;
252
		}
266
		}
253
267
254
		/**
268
		/**
255
		 * @generated
269
		 * @generated
256
		 */
270
		 */
257
		private void setFigureDiagramElementFigure_NameLabel(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig) {
271
		private void setFigureDiagramElementFigure_NameLabel(WrapLabel fig) {
258
			fDiagramElementFigure_NameLabel = fig;
272
			fDiagramElementFigure_NameLabel = fig;
259
		}
273
		}
260
274
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDocumentProvider.java (-71 / +657 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 13-176 Link Here
13
import java.io.IOException;
13
import java.io.IOException;
14
import java.util.ArrayList;
14
import java.util.ArrayList;
15
import java.util.Collection;
15
import java.util.Collection;
16
import java.util.Collections;
16
import java.util.HashMap;
17
import java.util.Iterator;
17
import java.util.Iterator;
18
import java.util.List;
18
import java.util.List;
19
import java.util.Map;
19
20
20
import org.eclipse.core.resources.IFile;
21
import org.eclipse.core.resources.IFile;
21
import org.eclipse.core.resources.IResource;
22
import org.eclipse.core.resources.IResource;
23
import org.eclipse.core.resources.IResourceStatus;
24
import org.eclipse.core.resources.IStorage;
25
import org.eclipse.core.resources.IWorkspace;
26
import org.eclipse.core.resources.ResourcesPlugin;
22
import org.eclipse.core.runtime.CoreException;
27
import org.eclipse.core.runtime.CoreException;
28
import org.eclipse.core.runtime.IPath;
23
import org.eclipse.core.runtime.IProgressMonitor;
29
import org.eclipse.core.runtime.IProgressMonitor;
24
import org.eclipse.core.runtime.SubProgressMonitor;
30
import org.eclipse.core.runtime.IStatus;
31
import org.eclipse.core.runtime.Path;
32
import org.eclipse.core.runtime.Status;
25
import org.eclipse.core.runtime.jobs.ISchedulingRule;
33
import org.eclipse.core.runtime.jobs.ISchedulingRule;
26
import org.eclipse.core.runtime.jobs.MultiRule;
34
import org.eclipse.core.runtime.jobs.MultiRule;
35
import org.eclipse.emf.common.notify.Adapter;
27
import org.eclipse.emf.common.notify.Notification;
36
import org.eclipse.emf.common.notify.Notification;
28
import org.eclipse.emf.ecore.EObject;
37
import org.eclipse.emf.common.notify.Notifier;
29
import org.eclipse.emf.ecore.resource.Resource;
38
import org.eclipse.emf.ecore.resource.Resource;
30
import org.eclipse.emf.transaction.DemultiplexingListener;
39
import org.eclipse.emf.ecore.resource.ResourceSet;
40
import org.eclipse.emf.ecore.util.EContentAdapter;
41
import org.eclipse.emf.ecore.xmi.XMLResource;
31
import org.eclipse.emf.transaction.NotificationFilter;
42
import org.eclipse.emf.transaction.NotificationFilter;
32
import org.eclipse.emf.transaction.TransactionalEditingDomain;
43
import org.eclipse.emf.transaction.TransactionalEditingDomain;
33
import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
44
import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
45
import org.eclipse.gmf.runtime.diagram.core.DiagramEditingDomainFactory;
34
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.DiagramDocument;
46
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.DiagramDocument;
35
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.DiagramModificationListener;
36
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument;
47
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument;
48
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocumentProvider;
37
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument;
49
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument;
38
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.document.FileDiagramDocumentProvider;
50
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.document.StorageDocumentProvider;
39
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.document.FileDiagramModificationListener;
51
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.internal.EditorStatusCodes;
52
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.internal.util.DiagramIOUtil;
40
import org.eclipse.gmf.runtime.notation.Diagram;
53
import org.eclipse.gmf.runtime.notation.Diagram;
54
import org.eclipse.swt.widgets.Display;
55
import org.eclipse.ui.IEditorInput;
41
import org.eclipse.ui.IFileEditorInput;
56
import org.eclipse.ui.IFileEditorInput;
57
import org.eclipse.ui.IStorageEditorInput;
58
import org.eclipse.ui.part.FileEditorInput;
42
59
43
/**
60
/**
44
 * @generated
61
 * @generated
45
 */
62
 */
46
public class GMFGraphDocumentProvider extends FileDiagramDocumentProvider {
63
public class GMFGraphDocumentProvider extends StorageDocumentProvider implements IDiagramDocumentProvider {
47
64
48
	/**
65
	/**
49
	 * @generated
66
	 * @generated
50
	 */
67
	 */
51
	protected void saveDocumentToFile(IDocument document, IFile file, boolean overwrite, IProgressMonitor monitor) throws CoreException {
68
	protected ElementInfo createElementInfo(Object element) throws CoreException {
52
		Diagram diagram = (Diagram) document.getContent();
69
		if (false == element instanceof FileEditorInput) {
53
		Resource diagramResource = diagram.eResource();
70
			throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0, "Incorrect element used: " + element + " instead of org.eclipse.ui.part.FileEditorInput", null)); //$NON-NLS-1$ //$NON-NLS-2$
54
		IDiagramDocument diagramDocument = (IDiagramDocument) document;
71
		}
55
		TransactionalEditingDomain domain = diagramDocument.getEditingDomain();
72
		FileEditorInput editorInput = (FileEditorInput) element;
56
		List resources = domain.getResourceSet().getResources();
73
		IDiagramDocument document = (IDiagramDocument) createDocument(editorInput);
74
75
		ResourceSetInfo info = new ResourceSetInfo(document, editorInput);
76
		info.setModificationStamp(computeModificationStamp(info));
77
		info.fStatus = null;
78
		ResourceSetModificationListener modificationListener = new ResourceSetModificationListener(info);
79
		info.getResourceSet().eAdapters().add(modificationListener);
80
		return info;
81
	}
57
82
58
		monitor.beginTask("Saving diagram", resources.size() + 1); //$NON-NLS-1$
83
	/**
59
		super.saveDocumentToFile(document, file, overwrite, new SubProgressMonitor(monitor, 1));
84
	 * @generated
60
		for (Iterator it = resources.iterator(); it.hasNext();) {
85
	 */
86
	private long computeModificationStamp(ResourceSetInfo info) {
87
		int result = 0;
88
		for (Iterator it = info.getResourceSet().getResources().iterator(); it.hasNext();) {
61
			Resource nextResource = (Resource) it.next();
89
			Resource nextResource = (Resource) it.next();
62
			monitor.setTaskName("Saving " + nextResource.getURI()); //$NON-NLS-1$
90
			IFile file = WorkspaceSynchronizer.getFile(nextResource);
63
			if (nextResource != diagramResource) {
91
			if (file != null) {
64
				try {
92
				if (file.getLocation() != null) {
65
					nextResource.save(Collections.EMPTY_MAP);
93
					result += file.getLocation().toFile().lastModified();
66
				} catch (IOException e) {
94
				} else {
67
					GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to save resource: " + nextResource.getURI(), e); //$NON-NLS-1$
95
					result += file.getModificationStamp();
68
				}
96
				}
69
			}
97
			}
70
			monitor.worked(1);
71
		}
98
		}
72
		monitor.done();
99
		return result;
73
	}
100
	}
74
101
75
	/**
102
	/**
76
	 * @generated
103
	 * @generated
77
	 */
104
	 */
78
	protected ISchedulingRule getSaveRule(Object element) {
105
	protected IDocument createEmptyDocument() {
79
		IDiagramDocument diagramDocument = getDiagramDocument(element);
106
		DiagramDocument document = new DiagramDocument();
80
		if (diagramDocument != null) {
107
		document.setEditingDomain(createEditingDomain());
81
			Diagram diagram = diagramDocument.getDiagram();
108
		return document;
82
			if (diagram != null) {
109
	}
83
				Collection rules = new ArrayList();
110
84
				for (Iterator it = diagramDocument.getEditingDomain().getResourceSet().getResources().iterator(); it.hasNext();) {
111
	private TransactionalEditingDomain createEditingDomain() {
85
					IFile nextFile = WorkspaceSynchronizer.getFile((Resource) it.next());
112
		TransactionalEditingDomain editingDomain = DiagramEditingDomainFactory.getInstance().createEditingDomain();
86
					if (nextFile != null) {
113
		editingDomain.setID("org.eclipse.gmf.graphdef.editor.EditingDomain"); //$NON-NLS-1$
87
						rules.add(computeSaveSchedulingRule(nextFile));
114
		final NotificationFilter diagramResourceModifiedFilter = NotificationFilter.createNotifierFilter(editingDomain.getResourceSet())
115
				.and(NotificationFilter.createEventTypeFilter(Notification.ADD)).and(NotificationFilter.createFeatureFilter(ResourceSet.class, ResourceSet.RESOURCE_SET__RESOURCES));
116
		editingDomain.getResourceSet().eAdapters().add(new Adapter() {
117
118
			private Notifier myTarger;
119
120
			public Notifier getTarget() {
121
				return myTarger;
122
			}
123
124
			public boolean isAdapterForType(Object type) {
125
				return false;
126
			}
127
128
			public void notifyChanged(Notification notification) {
129
				if (diagramResourceModifiedFilter.matches(notification)) {
130
					Object value = notification.getNewValue();
131
					if (value instanceof Resource) {
132
						((Resource) value).setTrackingModification(true);
88
					}
133
					}
89
				}
134
				}
90
				return new MultiRule((ISchedulingRule[]) rules.toArray(new ISchedulingRule[rules.size()]));
91
			}
135
			}
136
137
			public void setTarget(Notifier newTarget) {
138
				myTarger = newTarget;
139
			}
140
141
		});
142
143
		return editingDomain;
144
	}
145
146
	/**
147
	 * @generated
148
	 */
149
	protected void setDocumentContentFromStorage(IDocument document, IStorage storage) throws CoreException {
150
		IDiagramDocument diagramDocument = (IDiagramDocument) document;
151
		//	org.eclipse.gmf.runtime.notation.Diagram diagram = diagramDocument.getDiagram();
152
153
		//	org.eclipse.emf.transaction.TransactionalEditingDomain domain = diagramDocument.getEditingDomain();
154
		//	diagram = org.eclipse.gmf.runtime.diagram.ui.resources.editor.internal.util.DiagramIOUtil.load(domain, storage, true, getProgressMonitor());
155
		//	if (myContentObjectURI != null && diagram != null && diagram.eResource() != null && !diagram.eResource().getURIFragment(diagram).equals(myContentObjectURI)) {
156
		//		org.eclipse.emf.ecore.EObject anotherContentObject = diagram.eResource().getEObject(myContentObjectURI);
157
		//		document.setContent(anotherContentObject);
158
		//	} else {
159
		//		document.setContent(diagram);
160
		//	}
161
162
		TransactionalEditingDomain domain = diagramDocument.getEditingDomain();
163
		Diagram diagram = DiagramIOUtil.load(domain, storage, true, getProgressMonitor());
164
		document.setContent(diagram);
165
	}
166
167
	/**
168
	 * @generated
169
	 */
170
	public long getModificationStamp(Object element) {
171
		ResourceSetInfo info = getResourceSetInfo(element);
172
		if (info != null) {
173
			return computeModificationStamp(info);
92
		}
174
		}
93
		return super.getSaveRule(element);
175
		return super.getModificationStamp(element);
94
	}
176
	}
95
177
96
	/**
178
	/**
97
	 * @generated
179
	 * @generated
98
	 */
180
	 */
99
	protected FileInfo createFileInfo(IDocument document, FileSynchronizer synchronizer, IFileEditorInput input) {
181
	public long getSynchronizationStamp(Object element) {
100
		assert document instanceof DiagramDocument;
182
		ResourceSetInfo info = getResourceSetInfo(element);
183
		if (info != null) {
184
			return info.getModificationStamp();
185
		}
186
		return super.getSynchronizationStamp(element);
187
	}
101
188
102
		DiagramModificationListener diagramListener = new CustomModificationListener(this, (DiagramDocument) document, input);
189
	/**
103
		DiagramFileInfo info = new DiagramFileInfo(document, synchronizer, diagramListener);
190
	 * @generated
191
	 */
192
	public boolean isDeleted(Object element) {
193
		if (element instanceof IFileEditorInput) {
194
			IFileEditorInput input = (IFileEditorInput) element;
195
			IPath path = input.getFile().getLocation();
196
			if (path == null) {
197
				return true;
198
			}
199
			return !path.toFile().exists();
200
		}
201
		return super.isDeleted(element);
202
	}
104
203
105
		diagramListener.startListening();
204
	/**
106
		return info;
205
	 * @generated
206
	 */
207
	public ResourceSetInfo getResourceSetInfo(Object editorInput) {
208
		return (ResourceSetInfo) super.getElementInfo(editorInput);
209
	}
210
211
	/**
212
	 * @generated
213
	 */
214
	protected void disposeElementInfo(Object element, ElementInfo info) {
215
		if (info instanceof ResourceSetInfo) {
216
			ResourceSetInfo resourceSetInfo = (ResourceSetInfo) info;
217
			resourceSetInfo.dispose();
218
		}
219
		super.disposeElementInfo(element, info);
220
	}
221
222
	/**
223
	 * @generated
224
	 */
225
	protected void doValidateState(Object element, Object computationContext) throws CoreException {
226
		ResourceSetInfo info = getResourceSetInfo(element);
227
		if (info != null) {
228
			Collection files2Validate = new ArrayList();
229
			for (Iterator it = info.getResourceSet().getResources().iterator(); it.hasNext();) {
230
				Resource nextResource = (Resource) it.next();
231
				IFile file = WorkspaceSynchronizer.getFile(nextResource);
232
				if (file != null && file.isReadOnly()) {
233
					files2Validate.add(file);
234
				}
235
			}
236
			ResourcesPlugin.getWorkspace().validateEdit((IFile[]) files2Validate.toArray(new IFile[files2Validate.size()]), computationContext);
237
		}
238
239
		super.doValidateState(element, computationContext);
107
	}
240
	}
108
241
109
	/**
242
	/**
110
	 * @generated
243
	 * @generated
111
	 */
244
	 */
112
	private ISchedulingRule computeSaveSchedulingRule(IResource toCreateOrModify) {
245
	public boolean isModifiable(Object element) {
113
		if (toCreateOrModify.exists() && toCreateOrModify.isSynchronized(IResource.DEPTH_ZERO))
246
		if (!isStateValidated(element)) {
114
			return fResourceRuleFactory.modifyRule(toCreateOrModify);
247
			if (element instanceof FileEditorInput) {
248
				return true;
249
			}
250
		}
251
		return super.isModifiable(element);
252
	}
253
254
	/**
255
	 * @generated
256
	 */
257
	protected void updateCache(IStorageEditorInput input) throws CoreException {
258
		ResourceSetInfo info = getResourceSetInfo(input);
259
		if (info != null) {
260
			for (Iterator it = info.getResourceSet().getResources().iterator(); it.hasNext();) {
261
				Resource nextResource = (Resource) it.next();
262
				IFile file = WorkspaceSynchronizer.getFile(nextResource);
263
				if (file != null && file.isReadOnly()) {
264
					info.fIsReadOnly = true;
265
					info.fIsModifiable = false;
266
					return;
267
				}
268
			}
269
			info.fIsReadOnly = false;
270
			info.fIsModifiable = true;
271
			return;
272
		}
273
		super.updateCache(input);
274
	}
275
276
	/**
277
	 * @generated
278
	 */
279
	public boolean isSynchronized(Object element) {
280
		ResourceSetInfo info = getResourceSetInfo(element);
281
		if (info != null) {
282
			return info.isSynchronized();
283
		}
284
		return super.isSynchronized(element);
285
	}
286
287
	/**
288
	 * @generated
289
	 */
290
	protected ISchedulingRule getResetRule(Object element) {
291
		ResourceSetInfo info = getResourceSetInfo(element);
292
		if (info != null) {
293
			Collection rules = new ArrayList();
294
			for (Iterator it = info.getResourceSet().getResources().iterator(); it.hasNext();) {
295
				Resource nextResource = (Resource) it.next();
296
				IFile file = WorkspaceSynchronizer.getFile(nextResource);
297
				if (file != null) {
298
					rules.add(ResourcesPlugin.getWorkspace().getRuleFactory().modifyRule(file));
299
				}
300
			}
301
			return new MultiRule((ISchedulingRule[]) rules.toArray(new ISchedulingRule[rules.size()]));
302
		}
303
		return null;
304
	}
305
306
	/**
307
	 * @generated
308
	 */
309
	protected ISchedulingRule getSaveRule(Object element) {
310
		ResourceSetInfo info = getResourceSetInfo(element);
311
		if (info != null) {
312
			Collection rules = new ArrayList();
313
			for (Iterator it = info.getResourceSet().getResources().iterator(); it.hasNext();) {
314
				Resource nextResource = (Resource) it.next();
315
				IFile file = WorkspaceSynchronizer.getFile(nextResource);
316
				if (file != null) {
317
					rules.add(computeSchedulingRule(file));
318
				}
319
			}
320
			return new MultiRule((ISchedulingRule[]) rules.toArray(new ISchedulingRule[rules.size()]));
321
		}
322
		return null;
323
	}
324
325
	/**
326
	 * @generated
327
	 */
328
	protected ISchedulingRule getSynchronizeRule(Object element) {
329
		ResourceSetInfo info = getResourceSetInfo(element);
330
		if (info != null) {
331
			Collection rules = new ArrayList();
332
			for (Iterator it = info.getResourceSet().getResources().iterator(); it.hasNext();) {
333
				Resource nextResource = (Resource) it.next();
334
				IFile file = WorkspaceSynchronizer.getFile(nextResource);
335
				if (file != null) {
336
					rules.add(ResourcesPlugin.getWorkspace().getRuleFactory().refreshRule(file));
337
				}
338
			}
339
			return new MultiRule((ISchedulingRule[]) rules.toArray(new ISchedulingRule[rules.size()]));
340
		}
341
		return null;
342
	}
343
344
	/**
345
	 * @generated
346
	 */
347
	protected ISchedulingRule getValidateStateRule(Object element) {
348
		ResourceSetInfo info = getResourceSetInfo(element);
349
		if (info != null) {
350
			Collection files = new ArrayList();
351
			for (Iterator it = info.getResourceSet().getResources().iterator(); it.hasNext();) {
352
				Resource nextResource = (Resource) it.next();
353
				IFile file = WorkspaceSynchronizer.getFile(nextResource);
354
				if (file != null) {
355
					files.add(file);
356
				}
357
			}
358
			return ResourcesPlugin.getWorkspace().getRuleFactory().validateEditRule((IFile[]) files.toArray(new IFile[files.size()]));
359
		}
360
		return null;
361
	}
362
363
	/**
364
	 * @generated
365
	 */
366
	private ISchedulingRule computeSchedulingRule(IResource toCreateOrModify) {
367
		if (toCreateOrModify.exists())
368
			return ResourcesPlugin.getWorkspace().getRuleFactory().modifyRule(toCreateOrModify);
115
369
116
		IResource parent = toCreateOrModify;
370
		IResource parent = toCreateOrModify;
117
		do {
371
		do {
118
			/*
372
			/*
119
			 * XXX This is a workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=67601
373
			 * XXX This is a workaround for
120
			 * IResourceRuleFactory.createRule should iterate the hierarchy itself.
374
			 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=67601
375
			 * IResourceRuleFactory.createRule should iterate the hierarchy
376
			 * itself.
121
			 */
377
			 */
122
			toCreateOrModify = parent;
378
			toCreateOrModify = parent;
123
			parent = toCreateOrModify.getParent();
379
			parent = toCreateOrModify.getParent();
124
		} while (parent != null && !parent.exists() && !parent.isSynchronized(IResource.DEPTH_ZERO));
380
		} while (parent != null && !parent.exists());
381
382
		return ResourcesPlugin.getWorkspace().getRuleFactory().createRule(toCreateOrModify);
383
	}
384
385
	/**
386
	 * @generated
387
	 */
388
	protected void doSynchronize(Object element, IProgressMonitor monitor) throws CoreException {
389
		ResourceSetInfo info = getResourceSetInfo(element);
390
		if (info != null && element instanceof FileEditorInput) {
391
			for (Iterator it = info.getResourceSet().getResources().iterator(); it.hasNext();) {
392
				Resource nextResource = (Resource) it.next();
393
				handleElementChanged(info, nextResource, monitor);
394
			}
395
			return;
396
		}
397
		super.doSynchronize(element, monitor);
398
	}
399
400
	/**
401
	 * @generated
402
	 */
403
	protected void markWholeResourceSetAsDirty(ResourceSet resourceSet) {
404
		for (Iterator it = resourceSet.getResources().iterator(); it.hasNext();) {
405
			Resource nextResource = (Resource) it.next();
406
			nextResource.setModified(true);
407
		}
408
	}
409
410
	/**
411
	 * @generated
412
	 */
413
	protected void doSaveDocument(IProgressMonitor monitor, Object element, IDocument document, boolean overwrite) throws CoreException {
414
		ResourceSetInfo info = getResourceSetInfo(element);
415
		if (info != null) {
416
			if (!overwrite && !info.isSynchronized()) {
417
				throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, IResourceStatus.OUT_OF_SYNC_LOCAL, "The file has been changed on the file system", null)); //$NON-NLS-1$
418
			}
419
			info.stopResourceListening();
420
			fireElementStateChanging(element);
421
			List resources = info.getResourceSet().getResources();
422
			try {
423
				monitor.beginTask("Saving diagram", resources.size() + 1);
424
				Map options = new HashMap();
425
				options.put(XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.TRUE);
426
				for (Iterator it = resources.iterator(); it.hasNext();) {
427
					Resource nextResource = (Resource) it.next();
428
					monitor.setTaskName("Saving " + nextResource.getURI());
429
					if (nextResource.isLoaded() && (!nextResource.isTrackingModification() || nextResource.isModified())) {
430
						try {
431
							nextResource.save(options);
432
						} catch (IOException e) {
433
							fireElementStateChangeFailed(element);
434
							throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, EditorStatusCodes.RESOURCE_FAILURE, e.getLocalizedMessage(), null));
435
						}
436
					}
437
					monitor.worked(1);
438
				}
439
				monitor.done();
440
			} catch (RuntimeException x) {
441
				fireElementStateChangeFailed(element);
442
				throw x;
443
			} finally {
444
				info.startResourceListening();
445
			}
446
447
			if (info != null) {
448
				info.setModificationStamp(computeModificationStamp(info));
449
				info.setSynchronized();
450
			}
451
		}
452
		super.doSaveDocument(monitor, element, document, overwrite);
453
	}
454
455
	/**
456
	 * @generated
457
	 */
458
	protected void handleElementChanged(ResourceSetInfo info, Resource changedResource, IProgressMonitor monitor) {
459
		IFile file = WorkspaceSynchronizer.getFile(changedResource);
460
		if (file != null) {
461
			try {
462
				file.refreshLocal(IResource.DEPTH_INFINITE, monitor);
463
			} catch (CoreException e) {
464
				handleCoreException(e, "FileDocumentProvider.handleElementContentChanged");
465
			}
466
		}
467
		changedResource.unload();
125
468
126
		return fResourceRuleFactory.createRule(toCreateOrModify);
469
		fireElementContentAboutToBeReplaced(info.getEditorInput());
470
		removeUnchangedElementListeners(info.getEditorInput(), info);
471
		info.fStatus = null;
472
		try {
473
			setDocumentContent(info.fDocument, info.getEditorInput());
474
		} catch (CoreException e) {
475
			info.fStatus = e.getStatus();
476
		}
477
		if (!info.fCanBeSaved) {
478
			info.setModificationStamp(computeModificationStamp(info));
479
		}
480
		addUnchangedElementListeners(info.getEditorInput(), info);
481
		fireElementContentReplaced(info.getEditorInput());
127
	}
482
	}
128
483
129
	/**
484
	/**
130
	 * @generated
485
	 * @generated
131
	 */
486
	 */
132
	private class CustomModificationListener extends FileDiagramModificationListener {
487
	protected void handleElementMoved(FileEditorInput input, IPath path) {
488
		IWorkspace workspace = ResourcesPlugin.getWorkspace();
489
		IFile newFile = workspace.getRoot().getFile(path);
490
		fireElementMoved(input, newFile == null ? null : new FileEditorInput(newFile));
491
	}
492
493
	/**
494
	 * @generated
495
	 */
496
	protected void handleElementDeleted(FileEditorInput input) {
497
		fireElementDeleted(input);
498
	}
499
500
	/**
501
	 * @generated
502
	 */
503
	public IEditorInput createInputWithEditingDomain(IEditorInput editorInput, TransactionalEditingDomain domain) {
504
		return editorInput;
505
	}
506
507
	/**
508
	 * @generated
509
	 */
510
	public IDiagramDocument getDiagramDocument(Object element) {
511
		IDocument doc = getDocument(element);
512
		if (doc instanceof IDiagramDocument) {
513
			return (IDiagramDocument) doc;
514
		}
515
		return null;
516
	}
517
518
	/**
519
	 * @generated
520
	 */
521
	protected class ResourceSetInfo extends StorageInfo {
133
522
134
		/**
523
		/**
135
		 * @generated
524
		 * @generated
136
		 */
525
		 */
137
		private DemultiplexingListener myListener = null;
526
		private long myModificationStamp = IResource.NULL_STAMP;
138
527
139
		/**
528
		/**
140
		 * @generated
529
		 * @generated
141
		 */
530
		 */
142
		public CustomModificationListener(GMFGraphDocumentProvider documentProviderParameter, DiagramDocument documentParameter, IFileEditorInput inputParameter) {
531
		private WorkspaceSynchronizer mySynchronizer;
143
			super(documentProviderParameter, documentParameter, inputParameter);
144
			final DiagramDocument document = documentParameter;
145
			NotificationFilter diagramResourceModifiedFilter = NotificationFilter.createEventTypeFilter(Notification.SET);
146
			myListener = new DemultiplexingListener(diagramResourceModifiedFilter) {
147
532
148
				protected void handleNotification(TransactionalEditingDomain domain, Notification notification) {
533
		/**
149
					if (notification.getNotifier() instanceof EObject) {
534
		 * @generated
150
						Resource modifiedResource = ((EObject) notification.getNotifier()).eResource();
535
		 */
151
						if (modifiedResource != document.getDiagram().eResource()) {
536
		private IDiagramDocument myDocument;
152
							document.setContent(document.getContent());
537
153
						}
538
		/**
539
		 * @generated
540
		 */
541
		private Collection myUnSynchronizedResources = new ArrayList();
542
543
		/**
544
		 * @generated
545
		 */
546
		private FileEditorInput myEditorInput;
547
548
		/**
549
		 * @generated
550
		 */
551
		public ResourceSetInfo(IDiagramDocument document, FileEditorInput editorInput) {
552
			super(document);
553
			myDocument = document;
554
			myEditorInput = editorInput;
555
			startResourceListening();
556
		}
557
558
		/**
559
		 * @generated
560
		 */
561
		public long getModificationStamp() {
562
			return myModificationStamp;
563
		}
564
565
		/**
566
		 * @generated
567
		 */
568
		public void setModificationStamp(long modificationStamp) {
569
			myModificationStamp = modificationStamp;
570
		}
571
572
		/**
573
		 * @generated
574
		 */
575
		public ResourceSet getResourceSet() {
576
			return myDocument.getEditingDomain().getResourceSet();
577
		}
578
579
		/**
580
		 * @generated
581
		 */
582
		public FileEditorInput getEditorInput() {
583
			return myEditorInput;
584
		}
585
586
		/**
587
		 * @generated
588
		 */
589
		public void dispose() {
590
			stopResourceListening();
591
			for (Iterator it = getResourceSet().getResources().iterator(); it.hasNext();) {
592
				Resource resource = (Resource) it.next();
593
				resource.unload();
594
			}
595
		}
596
597
		/**
598
		 * @generated
599
		 */
600
		public boolean isSynchronized() {
601
			return myUnSynchronizedResources.size() == 0;
602
		}
603
604
		/**
605
		 * @generated
606
		 */
607
		public void setSynchronized() {
608
			myUnSynchronizedResources.clear();
609
		}
610
611
		/**
612
		 * @generated
613
		 */
614
		public void setUnSynchronized(Resource resource) {
615
			myUnSynchronizedResources.add(resource);
616
		}
617
618
		/**
619
		 * @generated
620
		 */
621
		public void setSynchronized(Resource resource) {
622
			myUnSynchronizedResources.remove(resource);
623
		}
624
625
		/**
626
		 * @generated
627
		 */
628
		public final void stopResourceListening() {
629
			mySynchronizer.dispose();
630
			mySynchronizer = null;
631
		}
632
633
		/**
634
		 * @generated
635
		 */
636
		public final void startResourceListening() {
637
			mySynchronizer = new WorkspaceSynchronizer(myDocument.getEditingDomain(), new SynchronizerDelegate());
638
		}
639
640
		/**
641
		 * @generated
642
		 */
643
		private class SynchronizerDelegate implements WorkspaceSynchronizer.Delegate {
644
645
			/**
646
			 * @generated
647
			 */
648
			public void dispose() {
649
			}
650
651
			/**
652
			 * @generated
653
			 */
654
			public boolean handleResourceChanged(final Resource resource) {
655
				Display.getDefault().asyncExec(new Runnable() {
656
657
					public void run() {
658
						handleElementChanged(ResourceSetInfo.this, resource, null);
659
					}
660
				});
661
				return true;
662
			}
663
664
			/**
665
			 * @generated
666
			 */
667
			public boolean handleResourceDeleted(Resource resource) {
668
				Display.getDefault().asyncExec(new Runnable() {
669
670
					public void run() {
671
						handleElementDeleted(ResourceSetInfo.this.getEditorInput());
154
					}
672
					}
673
				});
674
				return true;
675
			}
676
677
			/**
678
			 * @generated
679
			 */
680
			public boolean handleResourceMoved(Resource resource, final org.eclipse.emf.common.util.URI newURI) {
681
				IFile file = WorkspaceSynchronizer.getFile(resource);
682
				if (file != null && file.equals(ResourceSetInfo.this.getEditorInput().getFile())) {
683
					Display.getDefault().asyncExec(new Runnable() {
155
684
685
						public void run() {
686
							handleElementMoved(ResourceSetInfo.this.getEditorInput(), new Path(org.eclipse.emf.common.util.URI.decode(newURI.path())).removeFirstSegments(1));
687
						}
688
					});
689
				} else {
690
					handleResourceDeleted(resource);
156
				}
691
				}
157
			};
692
				return true;
693
			}
694
158
		}
695
		}
159
696
697
	}
698
699
	/**
700
	 * @generated
701
	 */
702
	private class ResourceSetModificationListener extends EContentAdapter {
703
704
		/**
705
		 * @generated
706
		 */
707
		private NotificationFilter myModifiedFilter;
708
709
		/**
710
		 * @generated
711
		 */
712
		private ResourceSetInfo myInfo;
713
160
		/**
714
		/**
161
		 * @generated
715
		 * @generated
162
		 */
716
		 */
163
		public void startListening() {
717
		public ResourceSetModificationListener(ResourceSetInfo info) {
164
			super.startListening();
718
			myInfo = info;
165
			getEditingDomain().addResourceSetListener(myListener);
719
			myModifiedFilter = NotificationFilter.createEventTypeFilter(Notification.SET).or(NotificationFilter.createEventTypeFilter(Notification.UNSET)).and(
720
					NotificationFilter.createFeatureFilter(Resource.class, Resource.RESOURCE__IS_MODIFIED));
166
		}
721
		}
167
722
168
		/**
723
		/**
169
		 * @generated
724
		 * @generated
170
		 */
725
		 */
171
		public void stopListening() {
726
		public void notifyChanged(Notification notification) {
172
			getEditingDomain().removeResourceSetListener(myListener);
727
			if (notification.getNotifier() instanceof ResourceSet) {
173
			super.stopListening();
728
				super.notifyChanged(notification);
729
			}
730
			if (myModifiedFilter.matches(notification)) {
731
				if (notification.getNotifier() instanceof Resource) {
732
					Resource resource = (Resource) notification.getNotifier();
733
					if (resource.isLoaded()) {
734
						boolean modified = false;
735
						for (Iterator it = myInfo.getResourceSet().getResources().iterator(); it.hasNext() && !modified;) {
736
							Resource nextResource = (Resource) it.next();
737
							if (nextResource.isLoaded()) {
738
								modified = nextResource.isModified();
739
							}
740
						}
741
						boolean dirtyStateChanged = false;
742
						synchronized (myInfo) {
743
							if (modified != myInfo.fCanBeSaved) {
744
								myInfo.fCanBeSaved = modified;
745
								dirtyStateChanged = true;
746
							}
747
							if (!resource.isModified()) {
748
								myInfo.setSynchronized(resource);
749
							}
750
						}
751
						if (dirtyStateChanged) {
752
							fireElementDirtyStateChanged(myInfo.getEditorInput(), modified);
753
							if (!modified) {
754
								myInfo.setModificationStamp(computeModificationStamp(myInfo));
755
							}
756
						}
757
					}
758
				}
759
			}
174
		}
760
		}
175
761
176
	}
762
	}
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphMatchingStrategy.java (-3 / +61 lines)
Lines 10-19 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.part;
11
package org.eclipse.gmf.graphdef.editor.part;
12
12
13
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditorMatchingStrategy;
13
import org.eclipse.emf.common.util.URI;
14
15
import org.eclipse.emf.ecore.resource.Resource;
16
17
import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditorInput;
18
19
import org.eclipse.gmf.runtime.notation.Diagram;
20
21
import org.eclipse.ui.IEditorInput;
22
import org.eclipse.ui.IEditorMatchingStrategy;
23
import org.eclipse.ui.IEditorPart;
24
import org.eclipse.ui.IEditorReference;
25
import org.eclipse.ui.IFileEditorInput;
26
import org.eclipse.ui.PartInitException;
14
27
15
/**
28
/**
16
 * @generated
29
 * @generated
17
 */
30
 */
18
public class GMFGraphMatchingStrategy extends DiagramDocumentEditorMatchingStrategy {
31
public class GMFGraphMatchingStrategy implements IEditorMatchingStrategy {
19
}
32
33
	/**
34
	 * @generated
35
	 */
36
	public boolean matches(IEditorReference editorRef, IEditorInput input) {
37
		IEditorInput editorInput;
38
		try {
39
			editorInput = editorRef.getEditorInput();
40
		} catch (PartInitException e) {
41
			return false;
42
		}
43
44
		if (editorInput.equals(input)) {
45
			return true;
46
		}
47
48
		if (editorInput instanceof IFileEditorInput && input instanceof IFileEditorInput) {
49
			return ((IFileEditorInput) editorInput).getFile().equals(((IFileEditorInput) input).getFile());
50
		}
51
52
		IEditorPart editor = editorRef.getEditor(false);
53
		if (input instanceof DiagramEditorInput && editor instanceof GMFGraphDiagramEditor) {
54
			Diagram editorDiagram = ((GMFGraphDiagramEditor) editor).getDiagram();
55
			Diagram otherDiagram = ((DiagramEditorInput) input).getDiagram();
56
			return equals(editorDiagram, otherDiagram);
57
		}
58
		return false;
59
	}
60
61
	/**
62
	 * @generated
63
	 */
64
	private boolean equals(Diagram editorDiagram, Diagram otherDiagram) {
65
		Resource editorResource = editorDiagram.eResource();
66
		Resource otherResource = otherDiagram.eResource();
67
		if (editorResource != null && otherResource != null) {
68
			URI editorURI = editorResource.getURI();
69
			URI otherURI = otherResource.getURI();
70
			String editorURIFragment = editorResource.getURIFragment(editorDiagram);
71
			String otherURIFragment = otherResource.getURIFragment(otherDiagram);
72
			return editorURI.equals(otherURI) && editorURIFragment.equals(otherURIFragment);
73
		}
74
		return false;
75
	}
76
77
}
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphCreateShortcutAction.java (-20 / +5 lines)
Lines 14-33 Link Here
14
14
15
import org.eclipse.core.commands.operations.OperationHistoryFactory;
15
import org.eclipse.core.commands.operations.OperationHistoryFactory;
16
16
17
import org.eclipse.core.runtime.IAdaptable;
18
import org.eclipse.core.runtime.IProgressMonitor;
19
import org.eclipse.core.runtime.NullProgressMonitor;
17
import org.eclipse.core.runtime.NullProgressMonitor;
20
18
21
import org.eclipse.emf.common.util.URI;
19
import org.eclipse.emf.common.util.URI;
22
import org.eclipse.emf.common.util.WrappedException;
20
import org.eclipse.emf.common.util.WrappedException;
23
21
24
import org.eclipse.emf.ecore.EAnnotation;
25
import org.eclipse.emf.ecore.EObject;
22
import org.eclipse.emf.ecore.EObject;
26
import org.eclipse.emf.ecore.EcoreFactory;
23
24
import org.eclipse.gmf.graphdef.editor.edit.commands.GMFGraphCreateShortcutDecorationsCommand;
27
25
28
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
26
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
29
27
30
import org.eclipse.gmf.runtime.common.core.command.CommandResult;
28
import org.eclipse.gmf.runtime.common.core.command.ICommand;
31
29
32
import org.eclipse.gmf.runtime.diagram.ui.commands.CreateCommand;
30
import org.eclipse.gmf.runtime.diagram.ui.commands.CreateCommand;
33
31
Lines 96-116 Link Here
96
		}
94
		}
97
		CreateViewRequest.ViewDescriptor viewDescriptor = new CreateViewRequest.ViewDescriptor(new EObjectAdapter(selectedElement), Node.class, null,
95
		CreateViewRequest.ViewDescriptor viewDescriptor = new CreateViewRequest.ViewDescriptor(new EObjectAdapter(selectedElement), Node.class, null,
98
				GMFGraphDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
96
				GMFGraphDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
99
		CreateCommand command = new CreateCommand(mySelectedElement.getEditingDomain(), viewDescriptor, view) {
97
		ICommand command = new CreateCommand(mySelectedElement.getEditingDomain(), viewDescriptor, view);
100
98
		command = command.compose(new GMFGraphCreateShortcutDecorationsCommand(mySelectedElement.getEditingDomain(), view, viewDescriptor));
101
			protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
102
				CommandResult result = super.doExecuteWithResult(monitor, info);
103
				View view = (View) ((IAdaptable) result.getReturnValue()).getAdapter(View.class);
104
				if (view != null && view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
105
					EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation();
106
					shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$
107
					shortcutAnnotation.getDetails().put("modelID", CanvasEditPart.MODEL_ID); //$NON-NLS-1$
108
					view.getEAnnotations().add(shortcutAnnotation);
109
				}
110
				return result;
111
			}
112
113
		};
114
		try {
99
		try {
115
			OperationHistoryFactory.getOperationHistory().execute(command, new NullProgressMonitor(), null);
100
			OperationHistoryFactory.getOperationHistory().execute(command, new NullProgressMonitor(), null);
116
		} catch (ExecutionException e) {
101
		} catch (ExecutionException e) {
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDiagramEditor.java (-30 / +269 lines)
Lines 10-34 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.part;
11
package org.eclipse.gmf.graphdef.editor.part;
12
12
13
import org.eclipse.draw2d.DelegatingLayout;
13
import org.eclipse.gef.palette.PaletteRoot;
14
import org.eclipse.draw2d.FreeformLayer;
14
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor;
15
import org.eclipse.draw2d.LayeredPane;
16
import org.eclipse.gef.LayerConstants;
17
import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramRootEditPart;
18
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.editor.FileDiagramEditor;
19
import org.eclipse.ui.IEditorInput;
20
import org.eclipse.ui.ide.IGotoMarker;
21
import org.eclipse.emf.transaction.TransactionalEditingDomain;
15
import org.eclipse.emf.transaction.TransactionalEditingDomain;
16
import java.util.ArrayList;
17
import java.util.Collection;
18
import java.util.HashSet;
19
import java.util.Iterator;
20
import java.util.List;
21
22
import org.eclipse.core.resources.IFile;
22
import org.eclipse.core.resources.IFile;
23
import org.eclipse.core.resources.IMarker;
24
import org.eclipse.core.resources.IWorkspaceRoot;
25
import org.eclipse.core.resources.ResourcesPlugin;
26
27
import org.eclipse.core.runtime.CoreException;
28
import org.eclipse.core.runtime.IPath;
29
import org.eclipse.core.runtime.IProgressMonitor;
30
import org.eclipse.core.runtime.IStatus;
31
import org.eclipse.core.runtime.NullProgressMonitor;
32
33
import org.eclipse.emf.common.ui.URIEditorInput;
34
35
import org.eclipse.emf.common.util.URI;
36
37
import org.eclipse.emf.ecore.EObject;
38
39
import org.eclipse.emf.ecore.resource.Resource;
40
41
import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
42
43
import org.eclipse.gef.EditPartViewer;
44
45
import org.eclipse.gmf.graphdef.editor.navigator.GMFGraphNavigatorItem;
46
47
import org.eclipse.gmf.runtime.common.ui.services.marker.MarkerNavigationService;
23
48
24
import org.eclipse.gmf.graphdef.editor.edit.parts.GMFGraphEditPartFactory;
49
import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
50
51
import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramDropTargetListener;
52
53
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument;
54
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument;
55
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocumentProvider;
25
56
26
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.document.StorageDiagramDocumentProvider;
57
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.document.StorageDiagramDocumentProvider;
27
58
59
import org.eclipse.gmf.runtime.notation.View;
60
61
import org.eclipse.jface.dialogs.ErrorDialog;
62
import org.eclipse.jface.dialogs.IMessageProvider;
63
import org.eclipse.jface.dialogs.MessageDialog;
64
65
import org.eclipse.jface.util.LocalSelectionTransfer;
66
67
import org.eclipse.jface.viewers.IStructuredSelection;
68
69
import org.eclipse.jface.window.Window;
70
71
import org.eclipse.osgi.util.NLS;
72
73
import org.eclipse.swt.dnd.Transfer;
74
import org.eclipse.swt.dnd.TransferData;
75
76
import org.eclipse.swt.widgets.Shell;
77
78
import org.eclipse.ui.IEditorInput;
79
import org.eclipse.ui.IEditorMatchingStrategy;
80
import org.eclipse.ui.IEditorReference;
81
import org.eclipse.ui.IFileEditorInput;
82
import org.eclipse.ui.PlatformUI;
83
84
import org.eclipse.ui.dialogs.SaveAsDialog;
85
86
import org.eclipse.ui.ide.IGotoMarker;
87
88
import org.eclipse.ui.part.FileEditorInput;
89
28
/**
90
/**
29
 * @generated
91
 * @generated
30
 */
92
 */
31
public class GMFGraphDiagramEditor extends FileDiagramEditor implements IGotoMarker {
93
public class GMFGraphDiagramEditor extends DiagramDocumentEditor implements IGotoMarker {
32
94
33
	/**
95
	/**
34
	 * @generated
96
	 * @generated
Lines 45-69 Link Here
45
	/**
107
	/**
46
	 * @generated
108
	 * @generated
47
	 */
109
	 */
48
	protected String getEditingDomainID() {
110
	protected PaletteRoot createPaletteRoot(PaletteRoot existingPaletteRoot) {
49
		return "org.eclipse.gmf.graphdef.editor.EditingDomain"; //$NON-NLS-1$
111
		PaletteRoot root = super.createPaletteRoot(existingPaletteRoot);
112
		new GMFGraphPaletteFactory().fillPalette(root);
113
		return root;
114
	}
115
116
	/**
117
	 * @generated
118
	 */
119
	protected PreferencesHint getPreferencesHint() {
120
		return GMFGraphDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT;
50
	}
121
	}
51
122
52
	/**
123
	/**
53
	 * @generated
124
	 * @generated
54
	 */
125
	 */
55
	protected TransactionalEditingDomain createEditingDomain() {
126
	public String getContributorId() {
56
		TransactionalEditingDomain domain = super.createEditingDomain();
127
		return GMFGraphDiagramEditorPlugin.ID;
57
		domain.setID(getEditingDomainID());
128
	}
58
		return domain;
129
130
	/**
131
	 * @generated
132
	 */
133
	protected IDocumentProvider getDocumentProvider(IEditorInput input) {
134
		if (input instanceof URIEditorInput) {
135
			return new URIDiagramDocumentProvider();
136
		}
137
		return super.getDocumentProvider(input);
138
	}
139
140
	/**
141
	 * @generated
142
	 */
143
	public TransactionalEditingDomain getEditingDomain() {
144
		IDocument document = getEditorInput() != null ? getDocumentProvider().getDocument(getEditorInput()) : null;
145
		if (document instanceof IDiagramDocument) {
146
			return ((IDiagramDocument) document).getEditingDomain();
147
		}
148
		return super.getEditingDomain();
59
	}
149
	}
60
150
61
	/**
151
	/**
62
	 * @generated
152
	 * @generated
63
	 */
153
	 */
64
	protected void setDocumentProvider(IEditorInput input) {
154
	protected void setDocumentProvider(IEditorInput input) {
65
		if (input.getAdapter(IFile.class) != null) {
155
		if (input instanceof IFileEditorInput) {
66
			setDocumentProvider(new GMFGraphDocumentProvider());
156
			setDocumentProvider(GMFGraphDiagramEditorPlugin.getInstance().getDocumentProvider());
157
		} else if (input instanceof URIEditorInput) {
158
			setDocumentProvider(new URIDiagramDocumentProvider());
67
		} else {
159
		} else {
68
			setDocumentProvider(new StorageDiagramDocumentProvider());
160
			setDocumentProvider(new StorageDiagramDocumentProvider());
69
		}
161
		}
Lines 72-87 Link Here
72
	/**
164
	/**
73
	 * @generated
165
	 * @generated
74
	 */
166
	 */
75
	protected void configureGraphicalViewer() {
167
	public void gotoMarker(IMarker marker) {
76
		super.configureGraphicalViewer();
168
		MarkerNavigationService.getInstance().gotoMarker(this, marker);
77
		DiagramRootEditPart root = (DiagramRootEditPart) getDiagramGraphicalViewer().getRootEditPart();
78
		LayeredPane printableLayers = (LayeredPane) root.getLayer(LayerConstants.PRINTABLE_LAYERS);
79
		FreeformLayer extLabelsLayer = new FreeformLayer();
80
		extLabelsLayer.setLayoutManager(new DelegatingLayout());
81
		printableLayers.addLayerAfter(extLabelsLayer, GMFGraphEditPartFactory.EXTERNAL_NODE_LABELS_LAYER, LayerConstants.PRIMARY_LAYER);
82
		LayeredPane scalableLayers = (LayeredPane) root.getLayer(LayerConstants.SCALABLE_LAYERS);
83
		FreeformLayer scaledFeedbackLayer = new FreeformLayer();
84
		scaledFeedbackLayer.setEnabled(false);
85
		scalableLayers.addLayerAfter(scaledFeedbackLayer, LayerConstants.SCALED_FEEDBACK_LAYER, DiagramRootEditPart.DECORATION_UNPRINTABLE_LAYER);
86
	}
169
	}
87
}
170
171
	/**
172
	 * @generated
173
	 */
174
	public boolean isSaveAsAllowed() {
175
		return true;
176
	}
177
178
	/**
179
	 * @generated
180
	 */
181
	public void doSaveAs() {
182
		performSaveAs(new NullProgressMonitor());
183
	}
184
185
	/**
186
	 * @generated
187
	 */
188
	protected void performSaveAs(IProgressMonitor progressMonitor) {
189
		Shell shell = getSite().getShell();
190
		IEditorInput input = getEditorInput();
191
		SaveAsDialog dialog = new SaveAsDialog(shell);
192
		IFile original = input instanceof IFileEditorInput ? ((IFileEditorInput) input).getFile() : null;
193
		if (original != null) {
194
			dialog.setOriginalFile(original);
195
		}
196
		dialog.create();
197
		IDocumentProvider provider = getDocumentProvider();
198
		if (provider == null) {
199
			// editor has been programmatically closed while the dialog was open
200
			return;
201
		}
202
		if (provider.isDeleted(input) && original != null) {
203
			String message = NLS.bind("The original file ''{0}'' has been deleted.", original.getName());
204
			dialog.setErrorMessage(null);
205
			dialog.setMessage(message, IMessageProvider.WARNING);
206
		}
207
		if (dialog.open() == Window.CANCEL) {
208
			if (progressMonitor != null) {
209
				progressMonitor.setCanceled(true);
210
			}
211
			return;
212
		}
213
		IPath filePath = dialog.getResult();
214
		if (filePath == null) {
215
			if (progressMonitor != null) {
216
				progressMonitor.setCanceled(true);
217
			}
218
			return;
219
		}
220
		IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
221
		IFile file = workspaceRoot.getFile(filePath);
222
		final IEditorInput newInput = new FileEditorInput(file);
223
		// Check if the editor is already open
224
		IEditorMatchingStrategy matchingStrategy = getEditorDescriptor().getEditorMatchingStrategy();
225
		IEditorReference[] editorRefs = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences();
226
		for (int i = 0; i < editorRefs.length; i++) {
227
			if (matchingStrategy.matches(editorRefs[i], newInput)) {
228
				MessageDialog.openWarning(shell, "Problem During Save As...", "Save could not be completed. Target file is already open in another editor.");
229
				return;
230
			}
231
		}
232
		boolean success = false;
233
		try {
234
			provider.aboutToChange(newInput);
235
			getDocumentProvider(newInput).saveDocument(progressMonitor, newInput, getDocumentProvider().getDocument(getEditorInput()), true);
236
			success = true;
237
		} catch (CoreException x) {
238
			IStatus status = x.getStatus();
239
			if (status == null || status.getSeverity() != IStatus.CANCEL) {
240
				ErrorDialog.openError(shell, "Save Problems", "Could not save file.", x.getStatus());
241
			}
242
		} finally {
243
			provider.changed(newInput);
244
			if (success) {
245
				setInput(newInput);
246
			}
247
		}
248
		if (progressMonitor != null) {
249
			progressMonitor.setCanceled(!success);
250
		}
251
	}
252
253
	/**
254
	 * @generated
255
	 */
256
	protected void initializeGraphicalViewer() {
257
		super.initializeGraphicalViewer();
258
		getDiagramGraphicalViewer().addDropTargetListener(new DropTargetListener(getDiagramGraphicalViewer(), LocalSelectionTransfer.getTransfer()) {
259
260
			protected Object getJavaObject(TransferData data) {
261
				return LocalSelectionTransfer.getTransfer().nativeToJava(data);
262
			}
263
264
		});
265
		getDiagramGraphicalViewer().addDropTargetListener(new DropTargetListener(getDiagramGraphicalViewer(), LocalTransfer.getInstance()) {
266
267
			protected Object getJavaObject(TransferData data) {
268
				return LocalTransfer.getInstance().nativeToJava(data);
269
			}
270
271
		});
272
	}
273
274
	/**
275
	 * @generated
276
	 */
277
	private abstract class DropTargetListener extends DiagramDropTargetListener {
278
279
		/**
280
		 * @generated
281
		 */
282
		public DropTargetListener(EditPartViewer viewer, Transfer xfer) {
283
			super(viewer, xfer);
284
		}
285
286
		/**
287
		 * @generated
288
		 */
289
		protected List getObjectsBeingDropped() {
290
			TransferData data = getCurrentEvent().currentDataType;
291
			Collection uris = new HashSet();
292
293
			Object transferedObject = getJavaObject(data);
294
			if (transferedObject instanceof IStructuredSelection) {
295
				IStructuredSelection selection = (IStructuredSelection) transferedObject;
296
				for (Iterator it = selection.iterator(); it.hasNext();) {
297
					Object nextSelectedObject = it.next();
298
					if (nextSelectedObject instanceof GMFGraphNavigatorItem) {
299
						View view = ((GMFGraphNavigatorItem) nextSelectedObject).getView();
300
						nextSelectedObject = view.getElement();
301
					}
302
					if (nextSelectedObject instanceof EObject) {
303
						EObject modelElement = (EObject) nextSelectedObject;
304
						Resource modelElementResource = modelElement.eResource();
305
						uris.add(modelElementResource.getURI().appendFragment(modelElementResource.getURIFragment(modelElement)));
306
					}
307
				}
308
			}
309
310
			List result = new ArrayList();
311
			for (Iterator it = uris.iterator(); it.hasNext();) {
312
				URI nextURI = (URI) it.next();
313
				EObject modelObject = getEditingDomain().getResourceSet().getEObject(nextURI, true);
314
				result.add(modelObject);
315
			}
316
			return result;
317
		}
318
319
		/**
320
		 * @generated
321
		 */
322
		protected abstract Object getJavaObject(TransferData data);
323
324
	}
325
326
}
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDiagramPreferenceInitializer.java (-27 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.part;
12
13
import org.eclipse.gmf.runtime.diagram.ui.preferences.DiagramPreferenceInitializer;
14
import org.eclipse.jface.preference.IPreferenceStore;
15
16
/**
17
 * @generated
18
 */
19
public class GMFGraphDiagramPreferenceInitializer extends DiagramPreferenceInitializer {
20
21
	/**
22
	 * @generated
23
	 */
24
	protected IPreferenceStore getPreferenceStore() {
25
		return org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin.getInstance().getPreferenceStore();
26
	}
27
}
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphCreationWizard.java (-10 / +122 lines)
Lines 10-42 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.part;
11
package org.eclipse.gmf.graphdef.editor.part;
12
12
13
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.wizards.EditorCreationWizard;
13
import java.lang.reflect.InvocationTargetException;
14
15
import org.eclipse.core.runtime.CoreException;
16
import org.eclipse.core.runtime.IProgressMonitor;
17
import org.eclipse.emf.ecore.resource.Resource;
18
import org.eclipse.jface.dialogs.ErrorDialog;
19
import org.eclipse.jface.operation.IRunnableWithProgress;
14
import org.eclipse.jface.viewers.IStructuredSelection;
20
import org.eclipse.jface.viewers.IStructuredSelection;
21
import org.eclipse.jface.wizard.Wizard;
22
import org.eclipse.ui.INewWizard;
15
import org.eclipse.ui.IWorkbench;
23
import org.eclipse.ui.IWorkbench;
24
import org.eclipse.ui.PartInitException;
25
import org.eclipse.ui.actions.WorkspaceModifyOperation;
16
26
17
/**
27
/**
18
 * @generated
28
 * @generated
19
 */
29
 */
20
public class GMFGraphCreationWizard extends EditorCreationWizard {
30
public class GMFGraphCreationWizard extends Wizard implements INewWizard {
21
31
22
	/**
32
	/**
23
	 * @generated
33
	 * @generated
24
	 */
34
	 */
25
	public void addPages() {
35
	private IWorkbench workbench;
26
		super.addPages();
36
27
		if (page == null) {
37
	/**
28
			page = new GMFGraphCreationWizardPage(getWorkbench(), getSelection());
38
	 * @generated
29
		}
39
	 */
30
		addPage(page);
40
	protected IStructuredSelection selection;
41
42
	/**
43
	 * @generated
44
	 */
45
	protected GMFGraphCreationWizardPage diagramModelFilePage;
46
47
	/**
48
	 * @generated
49
	 */
50
	protected GMFGraphCreationWizardPage domainModelFilePage;
51
52
	/**
53
	 * @generated
54
	 */
55
	protected Resource diagram;
56
57
	/**
58
	 * @generated
59
	 */
60
	private boolean openNewlyCreatedDiagramEditor = true;
61
62
	/**
63
	 * @generated
64
	 */
65
	public IWorkbench getWorkbench() {
66
		return workbench;
67
	}
68
69
	/**
70
	 * @generated
71
	 */
72
	public IStructuredSelection getSelection() {
73
		return selection;
74
	}
75
76
	/**
77
	 * @generated
78
	 */
79
	public final Resource getDiagram() {
80
		return diagram;
81
	}
82
83
	/**
84
	 * @generated
85
	 */
86
	public final boolean isOpenNewlyCreatedDiagramEditor() {
87
		return openNewlyCreatedDiagramEditor;
88
	}
89
90
	/**
91
	 * @generated
92
	 */
93
	public void setOpenNewlyCreatedDiagramEditor(boolean openNewlyCreatedDiagramEditor) {
94
		this.openNewlyCreatedDiagramEditor = openNewlyCreatedDiagramEditor;
31
	}
95
	}
32
96
33
	/**
97
	/**
34
	 * @generated
98
	 * @generated
35
	 */
99
	 */
36
	public void init(IWorkbench workbench, IStructuredSelection selection) {
100
	public void init(IWorkbench workbench, IStructuredSelection selection) {
37
		super.init(workbench, selection);
101
		this.workbench = workbench;
38
		setWindowTitle("New GMFGraph Diagram"); //$NON-NLS-1$
102
		this.selection = selection;
103
		setWindowTitle("New GMFGraph Diagram");
39
		setDefaultPageImageDescriptor(GMFGraphDiagramEditorPlugin.getBundledImageDescriptor("icons/wizban/NewGMFGraphWizard.gif")); //$NON-NLS-1$
104
		setDefaultPageImageDescriptor(GMFGraphDiagramEditorPlugin.getBundledImageDescriptor("icons/wizban/NewGMFGraphWizard.gif")); //$NON-NLS-1$
40
		setNeedsProgressMonitor(true);
105
		setNeedsProgressMonitor(true);
41
	}
106
	}
107
108
	/**
109
	 * @generated
110
	 */
111
	public void addPages() {
112
		diagramModelFilePage = new GMFGraphCreationWizardPage("DiagramModelFile", getSelection(), "gmfgraph_diagram"); //$NON-NLS-1$ //$NON-NLS-2$
113
		diagramModelFilePage.setTitle("Create GMFGraph Diagram");
114
		diagramModelFilePage.setDescription("Select file that will contain diagram model.");
115
		addPage(diagramModelFilePage);
116
117
		domainModelFilePage = new GMFGraphCreationWizardPage("DomainModelFile", getSelection(), "gmfgraph"); //$NON-NLS-1$ //$NON-NLS-2$
118
		domainModelFilePage.setTitle("Create GMFGraph Diagram");
119
		domainModelFilePage.setDescription("Select file that will contain domain model.");
120
		addPage(domainModelFilePage);
121
	}
122
123
	/**
124
	 * @generated
125
	 */
126
	public boolean performFinish() {
127
		IRunnableWithProgress op = new WorkspaceModifyOperation(null) {
128
129
			protected void execute(IProgressMonitor monitor) throws CoreException, InterruptedException {
130
				diagram = GMFGraphDiagramEditorUtil.createDiagram(diagramModelFilePage.getURI(), domainModelFilePage.getURI(), monitor);
131
				if (isOpenNewlyCreatedDiagramEditor() && diagram != null) {
132
					try {
133
						GMFGraphDiagramEditorUtil.openDiagram(diagram);
134
					} catch (PartInitException e) {
135
						ErrorDialog.openError(getContainer().getShell(), "Error opening diagram editor", null, e.getStatus());
136
					}
137
				}
138
			}
139
		};
140
		try {
141
			getContainer().run(false, true, op);
142
		} catch (InterruptedException e) {
143
			return false;
144
		} catch (InvocationTargetException e) {
145
			if (e.getTargetException() instanceof CoreException) {
146
				ErrorDialog.openError(getContainer().getShell(), "Creation Problems", null, ((CoreException) e.getTargetException()).getStatus());
147
			} else {
148
				GMFGraphDiagramEditorPlugin.getInstance().logError("Error creating diagram", e.getTargetException()); //$NON-NLS-1$
149
			}
150
			return false;
151
		}
152
		return diagram != null;
153
	}
42
}
154
}
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphVisualIDRegistry.java (+3 lines)
Lines 362-367 Link Here
362
	 * @generated
362
	 * @generated
363
	 */
363
	 */
364
	public static int getLinkWithClassVisualID(EObject domainElement) {
364
	public static int getLinkWithClassVisualID(EObject domainElement) {
365
		if (domainElement == null) {
366
			return -1;
367
		}
365
		EClass domainElementMetaclass = domainElement.eClass();
368
		EClass domainElementMetaclass = domainElement.eClass();
366
		return getLinkWithClassVisualID(domainElement, domainElementMetaclass);
369
		return getLinkWithClassVisualID(domainElement, domainElementMetaclass);
367
	}
370
	}
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDiagramFileCreator.java (-82 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.part;
12
13
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.util.IDEEditorFileCreator;
14
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.util.DiagramFileCreator;
15
import org.eclipse.core.resources.IWorkspaceRoot;
16
import org.eclipse.core.resources.ResourcesPlugin;
17
18
import org.eclipse.core.runtime.IPath;
19
20
/**
21
 * @generated
22
 */
23
public class GMFGraphDiagramFileCreator extends IDEEditorFileCreator {
24
25
	/**
26
	 * @generated
27
	 */
28
	private static GMFGraphDiagramFileCreator INSTANCE = new GMFGraphDiagramFileCreator();
29
30
	/**
31
	 * @generated
32
	 */
33
	public static DiagramFileCreator getInstance() {
34
		return INSTANCE;
35
	}
36
37
	/**
38
	 * @generated
39
	 */
40
	public String getExtension() {
41
		return ".gmfgraph_diagram"; //$NON-NLS-1$
42
	}
43
44
	/**
45
	 * @generated
46
	 */
47
	public String getUniqueFileName(IPath containerPath, String fileName) {
48
		int nFileNumber = 1;
49
		fileName = removeExtensionFromFileName(fileName);
50
		String newFileName = fileName;
51
52
		IPath diagramFilePath = containerPath.append(appendExtensionToFileName(newFileName));
53
		IPath modelFilePath = containerPath.append(appendExtensionToModelFileName(newFileName));
54
		IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
55
56
		while (workspaceRoot.exists(diagramFilePath) || workspaceRoot.exists(modelFilePath)) {
57
			nFileNumber++;
58
			newFileName = fileName + nFileNumber;
59
			diagramFilePath = containerPath.append(appendExtensionToFileName(newFileName));
60
			modelFilePath = containerPath.append(appendExtensionToModelFileName(newFileName));
61
		}
62
		return newFileName;
63
	}
64
65
	/**
66
	 * @generated
67
	 */
68
	private String removeExtensionFromFileName(String fileName) {
69
		if (fileName.endsWith(getExtension())) {
70
			return fileName.substring(0, fileName.length() - getExtension().length());
71
		}
72
		return fileName;
73
	}
74
75
	/**
76
	 * @generated
77
	 */
78
	private String appendExtensionToModelFileName(String fileName) {
79
		return fileName + ".gmfgraph"; //$NON-NLS-1$
80
	}
81
82
}
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDiagramEditorPlugin.java (-2 / +25 lines)
Lines 16-21 Link Here
16
import org.eclipse.core.runtime.IPath;
16
import org.eclipse.core.runtime.IPath;
17
import org.eclipse.core.runtime.IStatus;
17
import org.eclipse.core.runtime.IStatus;
18
import org.eclipse.core.runtime.Path;
18
import org.eclipse.core.runtime.Path;
19
import org.eclipse.core.runtime.Platform;
19
import org.eclipse.core.runtime.Status;
20
import org.eclipse.core.runtime.Status;
20
21
21
import org.eclipse.emf.common.notify.AdapterFactory;
22
import org.eclipse.emf.common.notify.AdapterFactory;
Lines 59-64 Link Here
59
	/**
60
	/**
60
	 * @generated
61
	 * @generated
61
	 */
62
	 */
63
	private GMFGraphDocumentProvider myDocumentProvider;
64
65
	/**
66
	 * @generated
67
	 */
62
	public GMFGraphDiagramEditorPlugin() {
68
	public GMFGraphDiagramEditorPlugin() {
63
	}
69
	}
64
70
Lines 156-161 Link Here
156
	}
162
	}
157
163
158
	/**
164
	/**
165
	 * Returns string from plug-in's resource bundle
166
	 * @generated
167
	 */
168
	public static String getString(String key) {
169
		return Platform.getResourceString(getInstance().getBundle(), "%" + key); //$NON-NLS-1$
170
	}
171
172
	/**
159
	 * Returns an image for the image file at the given plug-in relative path.
173
	 * Returns an image for the image file at the given plug-in relative path.
160
	 * Client do not need to dispose this image. Images will be disposed automatically.
174
	 * Client do not need to dispose this image. Images will be disposed automatically.
161
	 *
175
	 *
Lines 175-180 Link Here
175
	/**
189
	/**
176
	 * @generated
190
	 * @generated
177
	 */
191
	 */
192
	public GMFGraphDocumentProvider getDocumentProvider() {
193
		if (myDocumentProvider == null) {
194
			myDocumentProvider = new GMFGraphDocumentProvider();
195
		}
196
		return myDocumentProvider;
197
	}
198
199
	/**
200
	 * @generated
201
	 */
178
	public void logError(String error) {
202
	public void logError(String error) {
179
		logError(error, null);
203
		logError(error, null);
180
	}
204
	}
Lines 203-209 Link Here
203
	 * @generated
227
	 * @generated
204
	 */
228
	 */
205
	public void logInfo(String message, Throwable throwable) {
229
	public void logInfo(String message, Throwable throwable) {
206
		if (message == null && message != null) {
230
		if (message == null && throwable != null) {
207
			message = throwable.getMessage();
231
			message = throwable.getMessage();
208
		}
232
		}
209
		getLog().log(new Status(IStatus.INFO, GMFGraphDiagramEditorPlugin.ID, IStatus.OK, message, throwable));
233
		getLog().log(new Status(IStatus.INFO, GMFGraphDiagramEditorPlugin.ID, IStatus.OK, message, throwable));
Lines 224-228 Link Here
224
			throwable.printStackTrace();
248
			throwable.printStackTrace();
225
		}
249
		}
226
	}
250
	}
227
228
}
251
}
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphElementChooserDialog.java (-7 / +26 lines)
Lines 48-55 Link Here
48
import org.eclipse.swt.widgets.Composite;
48
import org.eclipse.swt.widgets.Composite;
49
import org.eclipse.swt.widgets.Control;
49
import org.eclipse.swt.widgets.Control;
50
import org.eclipse.swt.widgets.Shell;
50
import org.eclipse.swt.widgets.Shell;
51
import org.eclipse.ui.model.WorkbenchContentProvider;
52
import org.eclipse.ui.model.WorkbenchLabelProvider;
51
import org.eclipse.ui.model.WorkbenchLabelProvider;
52
import org.eclipse.emf.ecore.util.FeatureMap;
53
54
import org.eclipse.emf.edit.provider.IWrapperItemProvider;
55
56
import org.eclipse.ui.model.WorkbenchContentProvider;
53
57
54
/**
58
/**
55
 * @generated
59
 * @generated
Lines 171-177 Link Here
171
				IPath resourcePath = modelFile.getFullPath();
175
				IPath resourcePath = modelFile.getFullPath();
172
				ResourceSet resourceSet = myEditingDomain.getResourceSet();
176
				ResourceSet resourceSet = myEditingDomain.getResourceSet();
173
				try {
177
				try {
174
					Resource modelResource = resourceSet.getResource(URI.createPlatformResourceURI(resourcePath.toString()), true);
178
					Resource modelResource = resourceSet.getResource(URI.createPlatformResourceURI(resourcePath.toString(), true), true);
175
					return myAdapterFctoryContentProvier.getChildren(modelResource);
179
					return myAdapterFctoryContentProvier.getChildren(modelResource);
176
				} catch (WrappedException e) {
180
				} catch (WrappedException e) {
177
					GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to load resource: " + resourcePath.toString(), e); //$NON-NLS-1$
181
					GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to load resource: " + resourcePath.toString(), e); //$NON-NLS-1$
Lines 241-248 Link Here
241
	 */
245
	 */
242
	private class ModelElementsTreeLabelProvider implements ILabelProvider {
246
	private class ModelElementsTreeLabelProvider implements ILabelProvider {
243
247
248
		/**
249
		 * @generated
250
		 */
244
		private WorkbenchLabelProvider myWorkbenchLabelProvider = new WorkbenchLabelProvider();
251
		private WorkbenchLabelProvider myWorkbenchLabelProvider = new WorkbenchLabelProvider();
245
252
253
		/**
254
		 * @generated
255
		 */
246
		private AdapterFactoryLabelProvider myAdapterFactoryLabelProvider = new AdapterFactoryLabelProvider(GMFGraphDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory());
256
		private AdapterFactoryLabelProvider myAdapterFactoryLabelProvider = new AdapterFactoryLabelProvider(GMFGraphDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory());
247
257
248
		/**
258
		/**
Lines 326-336 Link Here
326
		public void selectionChanged(SelectionChangedEvent event) {
336
		public void selectionChanged(SelectionChangedEvent event) {
327
			if (event.getSelection() instanceof IStructuredSelection) {
337
			if (event.getSelection() instanceof IStructuredSelection) {
328
				IStructuredSelection selection = (IStructuredSelection) event.getSelection();
338
				IStructuredSelection selection = (IStructuredSelection) event.getSelection();
329
				if (selection.size() == 1 && selection.getFirstElement() instanceof EObject) {
339
				if (selection.size() == 1) {
330
					mySelectedModelElement = (EObject) selection.getFirstElement();
340
					Object selectedElement = selection.getFirstElement();
331
					setOkButtonEnabled(ViewService.getInstance().provides(Node.class, new EObjectAdapter(mySelectedModelElement), myView, null, ViewUtil.APPEND, true,
341
					if (selectedElement instanceof IWrapperItemProvider) {
332
							GMFGraphDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT));
342
						selectedElement = ((IWrapperItemProvider) selectedElement).getValue();
333
					return;
343
					}
344
					if (selectedElement instanceof FeatureMap.Entry) {
345
						selectedElement = ((FeatureMap.Entry) selectedElement).getValue();
346
					}
347
					if (selectedElement instanceof EObject) {
348
						mySelectedModelElement = (EObject) selectedElement;
349
						setOkButtonEnabled(ViewService.getInstance().provides(Node.class, new EObjectAdapter(mySelectedModelElement), myView, null, ViewUtil.APPEND, true,
350
								GMFGraphDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT));
351
						return;
352
					}
334
				}
353
				}
335
			}
354
			}
336
			mySelectedModelElement = null;
355
			mySelectedModelElement = null;
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphCreationWizardPage.java (-42 / +72 lines)
Lines 10-92 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.part;
11
package org.eclipse.gmf.graphdef.editor.part;
12
12
13
import java.io.InputStream;
14
15
import org.eclipse.core.resources.IFile;
16
import org.eclipse.core.runtime.IPath;
13
import org.eclipse.core.runtime.IPath;
17
import org.eclipse.core.runtime.IProgressMonitor;
14
import org.eclipse.core.runtime.Path;
18
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.wizards.EditorWizardPage;
15
import org.eclipse.emf.common.util.URI;
19
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.util.DiagramFileCreator;
20
import org.eclipse.jface.viewers.IStructuredSelection;
16
import org.eclipse.jface.viewers.IStructuredSelection;
21
import org.eclipse.ui.IWorkbench;
17
import org.eclipse.osgi.util.NLS;
22
import org.eclipse.ui.IWorkbenchWindow;
18
import org.eclipse.swt.widgets.Composite;
23
19
import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
24
import org.eclipse.core.resources.ResourcesPlugin;
25
26
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
27
20
28
/**
21
/**
29
 * @generated
22
 * @generated
30
 */
23
 */
31
public class GMFGraphCreationWizardPage extends EditorWizardPage {
24
public class GMFGraphCreationWizardPage extends WizardNewFileCreationPage {
32
25
33
	/**
26
	/**
34
	 * @generated
27
	 * @generated
35
	 */
28
	 */
36
	public GMFGraphCreationWizardPage(IWorkbench workbench, IStructuredSelection selection) {
29
	private final String fileExtension;
37
		super("CreationWizardPage", workbench, selection); //$NON-NLS-1$
38
		setTitle("Create GMFGraph Diagram");
39
		setDescription("Create a new GMFGraph diagram.");
40
	}
41
30
42
	/**
31
	/**
43
	 * @generated
32
	 * @generated
44
	 */
33
	 */
45
	public IFile createAndOpenDiagram(IPath containerPath, String fileName, InputStream initialContents, String kind, IWorkbenchWindow dWindow, IProgressMonitor progressMonitor, boolean saveDiagram) {
34
	public GMFGraphCreationWizardPage(String pageName, IStructuredSelection selection, String fileExtension) {
46
		return GMFGraphDiagramEditorUtil.createAndOpenDiagram(getDiagramFileCreator(), containerPath, fileName, initialContents, kind, dWindow, progressMonitor, isOpenNewlyCreatedDiagramEditor(),
35
		super(pageName, selection);
47
				saveDiagram);
36
		this.fileExtension = fileExtension;
48
	}
37
	}
49
38
50
	/**
39
	/**
40
	 * Override to create files with this extension.
41
	 * 
51
	 * @generated
42
	 * @generated
52
	 */
43
	 */
53
	protected String getDefaultFileName() {
44
	protected String getExtension() {
54
		return "default"; //$NON-NLS-1$
45
		return fileExtension;
55
	}
46
	}
56
47
57
	/**
48
	/**
58
	 * @generated
49
	 * @generated
59
	 */
50
	 */
60
	public DiagramFileCreator getDiagramFileCreator() {
51
	public URI getURI() {
61
		return GMFGraphDiagramFileCreator.getInstance();
52
		return URI.createPlatformResourceURI(getFilePath().toString());
62
	}
53
	}
63
54
64
	/**
55
	/**
65
	 * @generated
56
	 * @generated
66
	 */
57
	 */
67
	protected String getDiagramKind() {
58
	protected IPath getFilePath() {
68
		return CanvasEditPart.MODEL_ID;
59
		IPath path = getContainerFullPath();
60
		if (path == null) {
61
			path = new Path(""); //$NON-NLS-1$
62
		}
63
		String fileName = getFileName();
64
		if (fileName != null) {
65
			path = path.append(fileName);
66
		}
67
		return path;
69
	}
68
	}
70
69
71
	/**
70
	/**
72
	 * @generated
71
	 * @generated
73
	 */
72
	 */
74
	protected boolean validatePage() {
73
	private String getUniqueFileName(IPath containerFullPath, String fileName) {
75
		if (super.validatePage()) {
74
		if (containerFullPath == null) {
76
			String fileName = getFileName();
75
			containerFullPath = new Path(""); //$NON-NLS-1$
77
			if (fileName == null) {
76
		}
78
				return false;
77
		if (fileName == null || fileName.trim().length() == 0) {
79
			}
78
			fileName = "default"; //$NON-NLS-1$
80
			// appending file extension to correctly process file names including "." symbol
79
		}
81
			IPath path = getContainerFullPath().append(getDiagramFileCreator().appendExtensionToFileName(fileName));
80
		IPath filePath = containerFullPath.append(fileName);
82
			path = path.removeFileExtension().addFileExtension("gmfgraph"); //$NON-NLS-1$
81
		String extension = getExtension();
83
			if (ResourcesPlugin.getWorkspace().getRoot().exists(path)) {
82
		if (extension != null && !extension.equals(filePath.getFileExtension())) {
84
				setErrorMessage("Model File already exists: " + path.lastSegment());
83
			filePath = filePath.addFileExtension(extension);
85
				return false;
84
		}
85
86
		extension = filePath.getFileExtension();
87
		fileName = filePath.removeFileExtension().lastSegment();
88
		int i = 1;
89
		while (GMFGraphDiagramEditorUtil.exists(filePath)) {
90
			i++;
91
			filePath = containerFullPath.append(fileName + i);
92
			if (extension != null) {
93
				filePath = filePath.addFileExtension(extension);
86
			}
94
			}
87
			return true;
88
		}
95
		}
89
		return false;
96
		return filePath.lastSegment();
90
	}
97
	}
91
98
92
}
99
	/**
100
	 * @generated
101
	 */
102
	public void createControl(Composite parent) {
103
		super.createControl(parent);
104
		setFileName(getUniqueFileName(getContainerFullPath(), getFileName()));
105
		setPageComplete(validatePage());
106
	}
107
108
	/**
109
	 * @generated
110
	 */
111
	protected boolean validatePage() {
112
		if (!super.validatePage()) {
113
			return false;
114
		}
115
		String extension = getExtension();
116
		if (extension != null && !getFilePath().toString().endsWith("." + extension)) {
117
			setErrorMessage(NLS.bind("File name should have ''{0}'' extension.", extension));
118
			return false;
119
		}
120
		return true;
121
	}
122
}
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphPaletteFactory.java (-137 / +74 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-27 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.part;
11
package org.eclipse.gmf.graphdef.editor.part;
12
12
13
import java.util.ArrayList;
13
import java.util.List;
14
import java.util.List;
15
14
import org.eclipse.gef.Tool;
16
import org.eclipse.gef.Tool;
15
import org.eclipse.gef.palette.PaletteContainer;
17
import org.eclipse.gef.palette.PaletteContainer;
18
import org.eclipse.gef.palette.PaletteDrawer;
16
import org.eclipse.gef.palette.PaletteRoot;
19
import org.eclipse.gef.palette.PaletteRoot;
17
import org.eclipse.gef.palette.ToolEntry;
20
import org.eclipse.gef.palette.ToolEntry;
18
import org.eclipse.jface.resource.ImageDescriptor;
19
import java.util.ArrayList;
20
21
import org.eclipse.gef.palette.PaletteDrawer;
22
23
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
21
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
24
25
import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeConnectionTool;
22
import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeConnectionTool;
26
import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeCreationTool;
23
import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeCreationTool;
27
24
Lines 39-49 Link Here
39
	}
36
	}
40
37
41
	/**
38
	/**
39
	 * Creates "Diagram Elements" palette tool group
42
	 * @generated
40
	 * @generated
43
	 */
41
	 */
44
	private PaletteContainer createDiagramElements1Group() {
42
	private PaletteContainer createDiagramElements1Group() {
45
		PaletteContainer paletteContainer = new PaletteDrawer("Diagram Elements");
43
		PaletteDrawer paletteContainer = new PaletteDrawer(Messages.DiagramElements1Group_title);
46
		paletteContainer.setDescription("Can visualize domain model elements");
44
		paletteContainer.setDescription(Messages.DiagramElements1Group_desc);
47
		paletteContainer.add(createNode1CreationTool());
45
		paletteContainer.add(createNode1CreationTool());
48
		paletteContainer.add(createChildNode2CreationTool());
46
		paletteContainer.add(createChildNode2CreationTool());
49
		paletteContainer.add(createCompartment3CreationTool());
47
		paletteContainer.add(createCompartment3CreationTool());
Lines 53-63 Link Here
53
	}
51
	}
54
52
55
	/**
53
	/**
54
	 * Creates "Figures" palette tool group
56
	 * @generated
55
	 * @generated
57
	 */
56
	 */
58
	private PaletteContainer createFigures2Group() {
57
	private PaletteContainer createFigures2Group() {
59
		PaletteContainer paletteContainer = new PaletteDrawer("Figures");
58
		PaletteDrawer paletteContainer = new PaletteDrawer(Messages.Figures2Group_title);
60
		paletteContainer.setDescription("Can be references by Diagram Elements");
59
		paletteContainer.setDescription(Messages.Figures2Group_desc);
61
		paletteContainer.add(createFigureGallery1CreationTool());
60
		paletteContainer.add(createFigureGallery1CreationTool());
62
		paletteContainer.add(createRectangle2CreationTool());
61
		paletteContainer.add(createRectangle2CreationTool());
63
		paletteContainer.add(createEllipse3CreationTool());
62
		paletteContainer.add(createEllipse3CreationTool());
Lines 70-252 Link Here
70
	 * @generated
69
	 * @generated
71
	 */
70
	 */
72
	private ToolEntry createNode1CreationTool() {
71
	private ToolEntry createNode1CreationTool() {
73
		ImageDescriptor smallImage;
72
		List/*<IElementType>*/types = new ArrayList/*<IElementType>*/(1);
74
		ImageDescriptor largeImage;
73
		types.add(GMFGraphElementTypes.Node_2002);
75
74
		NodeToolEntry entry = new NodeToolEntry(Messages.Node1CreationTool_title, Messages.Node1CreationTool_desc, types);
76
		smallImage = GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.Node_2002);
75
		entry.setSmallIcon(GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.Node_2002));
77
76
		entry.setLargeIcon(entry.getSmallIcon());
78
		largeImage = smallImage;
77
		return entry;
79
80
		final List elementTypes = new ArrayList();
81
		elementTypes.add(GMFGraphElementTypes.Node_2002);
82
		ToolEntry result = new NodeToolEntry("Node", "Create Diagram Element representing Top-level diagram Node", smallImage, largeImage, elementTypes);
83
84
		return result;
85
	}
78
	}
86
79
87
	/**
80
	/**
88
	 * @generated
81
	 * @generated
89
	 */
82
	 */
90
	private ToolEntry createChildNode2CreationTool() {
83
	private ToolEntry createChildNode2CreationTool() {
91
		ImageDescriptor smallImage;
84
		ToolEntry entry = new ToolEntry(Messages.ChildNode2CreationTool_title, Messages.ChildNode2CreationTool_desc, null, null) {
92
		ImageDescriptor largeImage;
93
94
		smallImage = null;
95
96
		largeImage = smallImage;
97
98
		ToolEntry result = new ToolEntry("ChildNode", "Create Diagram Element representing Child diagram Node", smallImage, largeImage) {
99
		};
85
		};
100
86
		return entry;
101
		return result;
102
	}
87
	}
103
88
104
	/**
89
	/**
105
	 * @generated
90
	 * @generated
106
	 */
91
	 */
107
	private ToolEntry createCompartment3CreationTool() {
92
	private ToolEntry createCompartment3CreationTool() {
108
		ImageDescriptor smallImage;
93
		List/*<IElementType>*/types = new ArrayList/*<IElementType>*/(1);
109
		ImageDescriptor largeImage;
94
		types.add(GMFGraphElementTypes.Compartment_2001);
110
95
		NodeToolEntry entry = new NodeToolEntry(Messages.Compartment3CreationTool_title, Messages.Compartment3CreationTool_desc, types);
111
		smallImage = GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.Compartment_2001);
96
		entry.setSmallIcon(GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.Compartment_2001));
112
97
		entry.setLargeIcon(entry.getSmallIcon());
113
		largeImage = smallImage;
98
		return entry;
114
115
		final List elementTypes = new ArrayList();
116
		elementTypes.add(GMFGraphElementTypes.Compartment_2001);
117
		ToolEntry result = new NodeToolEntry("Compartment", "Create Diagram Element representing Children Compartment", smallImage, largeImage, elementTypes);
118
119
		return result;
120
	}
99
	}
121
100
122
	/**
101
	/**
123
	 * @generated
102
	 * @generated
124
	 */
103
	 */
125
	private ToolEntry createConnection4CreationTool() {
104
	private ToolEntry createConnection4CreationTool() {
126
		ImageDescriptor smallImage;
105
		List/*<IElementType>*/types = new ArrayList/*<IElementType>*/(1);
127
		ImageDescriptor largeImage;
106
		types.add(GMFGraphElementTypes.Connection_2003);
128
107
		NodeToolEntry entry = new NodeToolEntry(Messages.Connection4CreationTool_title, Messages.Connection4CreationTool_desc, types);
129
		smallImage = GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.Connection_2003);
108
		entry.setSmallIcon(GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.Connection_2003));
130
109
		entry.setLargeIcon(entry.getSmallIcon());
131
		largeImage = smallImage;
110
		return entry;
132
133
		final List elementTypes = new ArrayList();
134
		elementTypes.add(GMFGraphElementTypes.Connection_2003);
135
		ToolEntry result = new NodeToolEntry("Connection", "Create Diagram Element representing Connection", smallImage, largeImage, elementTypes);
136
137
		return result;
138
	}
111
	}
139
112
140
	/**
113
	/**
141
	 * @generated
114
	 * @generated
142
	 */
115
	 */
143
	private ToolEntry createFigureLink5CreationTool() {
116
	private ToolEntry createFigureLink5CreationTool() {
144
		ImageDescriptor smallImage;
117
		List/*<IElementType>*/types = new ArrayList/*<IElementType>*/(1);
145
		ImageDescriptor largeImage;
118
		types.add(GMFGraphElementTypes.DiagramElementFigure_4001);
146
119
		LinkToolEntry entry = new LinkToolEntry(Messages.FigureLink5CreationTool_title, Messages.FigureLink5CreationTool_desc, types);
147
		smallImage = GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.DiagramElementFigure_4001);
120
		entry.setSmallIcon(GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.DiagramElementFigure_4001));
148
121
		entry.setLargeIcon(entry.getSmallIcon());
149
		largeImage = smallImage;
122
		return entry;
150
151
		final List relationshipTypes = new ArrayList();
152
		relationshipTypes.add(GMFGraphElementTypes.DiagramElementFigure_4001);
153
		ToolEntry result = new LinkToolEntry("Figure Link", "Link from the Diagram Element to the figure", smallImage, largeImage, relationshipTypes);
154
155
		return result;
156
	}
123
	}
157
124
158
	/**
125
	/**
159
	 * @generated
126
	 * @generated
160
	 */
127
	 */
161
	private ToolEntry createFigureGallery1CreationTool() {
128
	private ToolEntry createFigureGallery1CreationTool() {
162
		ImageDescriptor smallImage;
129
		List/*<IElementType>*/types = new ArrayList/*<IElementType>*/(1);
163
		ImageDescriptor largeImage;
130
		types.add(GMFGraphElementTypes.FigureGallery_2004);
164
131
		NodeToolEntry entry = new NodeToolEntry(Messages.FigureGallery1CreationTool_title, Messages.FigureGallery1CreationTool_desc, types);
165
		smallImage = GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.FigureGallery_2004);
132
		entry.setSmallIcon(GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.FigureGallery_2004));
166
133
		entry.setLargeIcon(entry.getSmallIcon());
167
		largeImage = smallImage;
134
		return entry;
168
169
		final List elementTypes = new ArrayList();
170
		elementTypes.add(GMFGraphElementTypes.FigureGallery_2004);
171
		ToolEntry result = new NodeToolEntry("FigureGallery", "Create FigureGallery - physical container for figures", smallImage, largeImage, elementTypes);
172
173
		return result;
174
	}
135
	}
175
136
176
	/**
137
	/**
177
	 * @generated
138
	 * @generated
178
	 */
139
	 */
179
	private ToolEntry createRectangle2CreationTool() {
140
	private ToolEntry createRectangle2CreationTool() {
180
		ImageDescriptor smallImage;
141
		List/*<IElementType>*/types = new ArrayList/*<IElementType>*/(2);
181
		ImageDescriptor largeImage;
142
		types.add(GMFGraphElementTypes.Rectangle_3001);
182
143
		types.add(GMFGraphElementTypes.Rectangle_3002);
183
		smallImage = GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.Rectangle_3001);
144
		NodeToolEntry entry = new NodeToolEntry(Messages.Rectangle2CreationTool_title, Messages.Rectangle2CreationTool_desc, types);
184
145
		entry.setSmallIcon(GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.Rectangle_3001));
185
		largeImage = smallImage;
146
		entry.setLargeIcon(entry.getSmallIcon());
186
147
		return entry;
187
		final List elementTypes = new ArrayList();
188
		elementTypes.add(GMFGraphElementTypes.Rectangle_3001);
189
		elementTypes.add(GMFGraphElementTypes.Rectangle_3002);
190
		ToolEntry result = new NodeToolEntry("Rectangle", "Create Rectangle", smallImage, largeImage, elementTypes);
191
192
		return result;
193
	}
148
	}
194
149
195
	/**
150
	/**
196
	 * @generated
151
	 * @generated
197
	 */
152
	 */
198
	private ToolEntry createEllipse3CreationTool() {
153
	private ToolEntry createEllipse3CreationTool() {
199
		ImageDescriptor smallImage;
154
		List/*<IElementType>*/types = new ArrayList/*<IElementType>*/(2);
200
		ImageDescriptor largeImage;
155
		types.add(GMFGraphElementTypes.Ellipse_3003);
201
156
		types.add(GMFGraphElementTypes.Ellipse_3006);
202
		smallImage = GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.Ellipse_3003);
157
		NodeToolEntry entry = new NodeToolEntry(Messages.Ellipse3CreationTool_title, Messages.Ellipse3CreationTool_desc, types);
203
158
		entry.setSmallIcon(GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.Ellipse_3003));
204
		largeImage = smallImage;
159
		entry.setLargeIcon(entry.getSmallIcon());
205
160
		return entry;
206
		final List elementTypes = new ArrayList();
207
		elementTypes.add(GMFGraphElementTypes.Ellipse_3003);
208
		elementTypes.add(GMFGraphElementTypes.Ellipse_3006);
209
		ToolEntry result = new NodeToolEntry("Ellipse", "Create Ellipse", smallImage, largeImage, elementTypes);
210
211
		return result;
212
	}
161
	}
213
162
214
	/**
163
	/**
215
	 * @generated
164
	 * @generated
216
	 */
165
	 */
217
	private ToolEntry createRoundedRectangle4CreationTool() {
166
	private ToolEntry createRoundedRectangle4CreationTool() {
218
		ImageDescriptor smallImage;
167
		List/*<IElementType>*/types = new ArrayList/*<IElementType>*/(2);
219
		ImageDescriptor largeImage;
168
		types.add(GMFGraphElementTypes.RoundedRectangle_3004);
220
169
		types.add(GMFGraphElementTypes.RoundedRectangle_3007);
221
		smallImage = GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.RoundedRectangle_3004);
170
		NodeToolEntry entry = new NodeToolEntry(Messages.RoundedRectangle4CreationTool_title, Messages.RoundedRectangle4CreationTool_desc, types);
222
171
		entry.setSmallIcon(GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.RoundedRectangle_3004));
223
		largeImage = smallImage;
172
		entry.setLargeIcon(entry.getSmallIcon());
224
173
		return entry;
225
		final List elementTypes = new ArrayList();
226
		elementTypes.add(GMFGraphElementTypes.RoundedRectangle_3004);
227
		elementTypes.add(GMFGraphElementTypes.RoundedRectangle_3007);
228
		ToolEntry result = new NodeToolEntry("Rounded Rectangle", "Create Rounded Rectangle", smallImage, largeImage, elementTypes);
229
230
		return result;
231
	}
174
	}
232
175
233
	/**
176
	/**
234
	 * @generated
177
	 * @generated
235
	 */
178
	 */
236
	private ToolEntry createPolyline5CreationTool() {
179
	private ToolEntry createPolyline5CreationTool() {
237
		ImageDescriptor smallImage;
180
		List/*<IElementType>*/types = new ArrayList/*<IElementType>*/(2);
238
		ImageDescriptor largeImage;
181
		types.add(GMFGraphElementTypes.Polyline_3005);
239
182
		types.add(GMFGraphElementTypes.Polyline_3008);
240
		smallImage = GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.Polyline_3005);
183
		NodeToolEntry entry = new NodeToolEntry(Messages.Polyline5CreationTool_title, Messages.Polyline5CreationTool_desc, types);
241
184
		entry.setSmallIcon(GMFGraphElementTypes.getImageDescriptor(GMFGraphElementTypes.Polyline_3005));
242
		largeImage = smallImage;
185
		entry.setLargeIcon(entry.getSmallIcon());
243
186
		return entry;
244
		final List elementTypes = new ArrayList();
245
		elementTypes.add(GMFGraphElementTypes.Polyline_3005);
246
		elementTypes.add(GMFGraphElementTypes.Polyline_3008);
247
		ToolEntry result = new NodeToolEntry("Polyline", "Create new PolylineConnection", smallImage, largeImage, elementTypes);
248
249
		return result;
250
	}
187
	}
251
188
252
	/**
189
	/**
Lines 262-269 Link Here
262
		/**
199
		/**
263
		 * @generated
200
		 * @generated
264
		 */
201
		 */
265
		private NodeToolEntry(String title, String description, ImageDescriptor smallIcon, ImageDescriptor largeIcon, List elementTypes) {
202
		private NodeToolEntry(String title, String description, List elementTypes) {
266
			super(title, description, smallIcon, largeIcon);
203
			super(title, description, null, null);
267
			this.elementTypes = elementTypes;
204
			this.elementTypes = elementTypes;
268
		}
205
		}
269
206
Lines 290-297 Link Here
290
		/**
227
		/**
291
		 * @generated
228
		 * @generated
292
		 */
229
		 */
293
		private LinkToolEntry(String title, String description, ImageDescriptor smallIcon, ImageDescriptor largeIcon, List relationshipTypes) {
230
		private LinkToolEntry(String title, String description, List relationshipTypes) {
294
			super(title, description, smallIcon, largeIcon);
231
			super(title, description, null, null);
295
			this.relationshipTypes = relationshipTypes;
232
			this.relationshipTypes = relationshipTypes;
296
		}
233
		}
297
234
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDiagramEditorUtil.java (-76 / +255 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 11-119 Link Here
11
package org.eclipse.gmf.graphdef.editor.part;
11
package org.eclipse.gmf.graphdef.editor.part;
12
12
13
import java.io.IOException;
13
import java.io.IOException;
14
import java.io.InputStream;
15
import java.lang.reflect.InvocationTargetException;
16
import java.util.ArrayList;
14
import java.util.ArrayList;
17
import java.util.Collections;
15
import java.util.Collections;
16
import java.util.HashMap;
17
import java.util.Iterator;
18
import java.util.List;
18
import java.util.List;
19
import java.util.Map;
20
import java.util.Set;
19
21
20
import org.eclipse.core.commands.ExecutionException;
22
import org.eclipse.core.commands.ExecutionException;
21
import org.eclipse.core.commands.operations.OperationHistoryFactory;
23
import org.eclipse.core.commands.operations.OperationHistoryFactory;
22
import org.eclipse.core.resources.IFile;
24
import org.eclipse.core.resources.IFile;
25
import org.eclipse.core.resources.IResource;
26
import org.eclipse.core.resources.ResourcesPlugin;
27
import org.eclipse.core.runtime.CoreException;
23
import org.eclipse.core.runtime.IAdaptable;
28
import org.eclipse.core.runtime.IAdaptable;
24
import org.eclipse.core.runtime.IPath;
29
import org.eclipse.core.runtime.IPath;
25
import org.eclipse.core.runtime.IProgressMonitor;
30
import org.eclipse.core.runtime.IProgressMonitor;
31
import org.eclipse.core.runtime.NullProgressMonitor;
32
import org.eclipse.core.runtime.Path;
26
import org.eclipse.core.runtime.SubProgressMonitor;
33
import org.eclipse.core.runtime.SubProgressMonitor;
27
import org.eclipse.emf.common.util.URI;
34
import org.eclipse.emf.ecore.EObject;
28
import org.eclipse.emf.ecore.resource.Resource;
35
import org.eclipse.emf.ecore.resource.Resource;
29
import org.eclipse.emf.ecore.resource.ResourceSet;
36
import org.eclipse.emf.ecore.xmi.XMIResource;
37
import org.eclipse.emf.ecore.xmi.XMLResource;
38
import org.eclipse.emf.edit.ui.util.EditUIUtil;
39
import org.eclipse.emf.transaction.TransactionalEditingDomain;
40
import org.eclipse.gef.EditPart;
41
import org.eclipse.gmf.gmfgraph.Canvas;
42
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
43
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
30
import org.eclipse.gmf.runtime.common.core.command.CommandResult;
44
import org.eclipse.gmf.runtime.common.core.command.CommandResult;
31
import org.eclipse.gmf.runtime.diagram.core.services.ViewService;
45
import org.eclipse.gmf.runtime.diagram.core.services.ViewService;
32
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.util.IDEEditorUtil;
46
import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
33
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.util.DiagramFileCreator;
47
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
48
import org.eclipse.gmf.runtime.diagram.ui.editparts.IPrimaryEditPart;
49
import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramGraphicalViewer;
50
import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramWorkbenchPart;
34
import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
51
import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
35
import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory;
52
import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory;
53
import org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil;
36
import org.eclipse.gmf.runtime.notation.Diagram;
54
import org.eclipse.gmf.runtime.notation.Diagram;
37
import org.eclipse.jface.operation.IRunnableContext;
55
import org.eclipse.gmf.runtime.notation.View;
38
import org.eclipse.jface.operation.IRunnableWithProgress;
56
import org.eclipse.ui.PartInitException;
39
import org.eclipse.swt.widgets.Shell;
40
import org.eclipse.ui.IWorkbenchWindow;
41
import org.eclipse.emf.transaction.TransactionalEditingDomain;
42
import java.util.HashMap;
43
import java.util.Map;
44
45
import org.eclipse.core.runtime.CoreException;
46
import org.eclipse.core.runtime.Path;
47
48
import org.eclipse.emf.ecore.EObject;
49
50
import org.eclipse.emf.ecore.xmi.XMIResource;
51
52
import org.eclipse.gmf.gmfgraph.Canvas;
53
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
54
57
55
/**
58
/**
56
 * @generated
59
 * @generated
57
 */
60
 */
58
public class GMFGraphDiagramEditorUtil extends IDEEditorUtil {
61
public class GMFGraphDiagramEditorUtil {
59
62
60
	/**
63
	/**
61
	 * @generated
64
	 * @generated
62
	 */
65
	 */
63
	public static final IFile createAndOpenDiagram(DiagramFileCreator diagramFileCreator, IPath containerPath, String fileName, InputStream initialContents, String kind, IWorkbenchWindow window,
66
	public static boolean openDiagram(Resource diagram) throws PartInitException {
64
			IProgressMonitor progressMonitor, boolean openEditor, boolean saveDiagram) {
67
		return EditUIUtil.openEditor((EObject) diagram.getContents().get(0));
65
		IFile diagramFile = GMFGraphDiagramEditorUtil.createNewDiagramFile(diagramFileCreator, containerPath, fileName, initialContents, kind, window.getShell(), progressMonitor);
68
	}
66
		if (diagramFile != null && openEditor) {
69
67
			IDEEditorUtil.openDiagram(diagramFile, window, saveDiagram, progressMonitor);
70
	/**
71
	 * @generated
72
	 */
73
	private static void setCharset(org.eclipse.emf.common.util.URI uri) {
74
		IFile file = getFile(uri);
75
		if (file == null) {
76
			return;
68
		}
77
		}
69
		return diagramFile;
78
		try {
79
			file.setCharset("UTF-8", new NullProgressMonitor()); //$NON-NLS-1$
80
		} catch (CoreException e) {
81
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to set charset for file " + file.getFullPath(), e); //$NON-NLS-1$
82
		}
83
	}
84
85
	/**
86
	 * @generated
87
	 */
88
	public static IFile getFile(org.eclipse.emf.common.util.URI uri) {
89
		if (uri.toString().startsWith("platform:/resource")) { //$NON-NLS-1$
90
			String path = uri.toString().substring("platform:/resource".length()); //$NON-NLS-1$
91
			IResource workspaceResource = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(path));
92
			if (workspaceResource instanceof IFile) {
93
				return (IFile) workspaceResource;
94
			}
95
		}
96
		return null;
97
	}
98
99
	/**
100
	 * @generated
101
	 */
102
	public static boolean exists(IPath path) {
103
		return ResourcesPlugin.getWorkspace().getRoot().exists(path);
70
	}
104
	}
71
105
72
	/**
106
	/**
73
	 * <p>
74
	 * This method should be called within a workspace modify operation since it creates resources.
107
	 * This method should be called within a workspace modify operation since it creates resources.
75
	 * </p>
76
	 * @generated
108
	 * @generated
77
	 * @return the created file resource, or <code>null</code> if the file was not created
78
	 */
109
	 */
79
	public static final IFile createNewDiagramFile(DiagramFileCreator diagramFileCreator, IPath containerFullPath, String fileName, InputStream initialContents, String kind, Shell shell,
110
	public static Resource createDiagram(org.eclipse.emf.common.util.URI diagramURI, org.eclipse.emf.common.util.URI modelURI, IProgressMonitor progressMonitor) {
80
			IProgressMonitor progressMonitor) {
81
		TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain();
111
		TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain();
82
		ResourceSet resourceSet = editingDomain.getResourceSet();
112
		progressMonitor.beginTask("Creating diagram and model files", 3);
83
		progressMonitor.beginTask("Creating diagram and model files", 4); //$NON-NLS-1$
113
		final Resource diagramResource = editingDomain.getResourceSet().createResource(diagramURI);
84
		final IProgressMonitor subProgressMonitor = new SubProgressMonitor(progressMonitor, 1);
114
		final Resource modelResource = editingDomain.getResourceSet().createResource(modelURI);
85
		final IFile diagramFile = diagramFileCreator.createNewFile(containerFullPath, fileName, initialContents, shell, new IRunnableContext() {
115
		final String diagramName = diagramURI.lastSegment();
86
116
		AbstractTransactionalCommand command = new AbstractTransactionalCommand(editingDomain, "Creating diagram and model", Collections.EMPTY_LIST) { //$NON-NLS-1$
87
			public void run(boolean fork, boolean cancelable, IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException {
88
				runnable.run(subProgressMonitor);
89
			}
90
		});
91
		final Resource diagramResource = resourceSet.createResource(URI.createPlatformResourceURI(diagramFile.getFullPath().toString()));
92
		List affectedFiles = new ArrayList();
93
		affectedFiles.add(diagramFile);
94
95
		IPath modelFileRelativePath = diagramFile.getFullPath().removeFileExtension().addFileExtension("gmfgraph"); //$NON-NLS-1$
96
		IFile modelFile = diagramFile.getParent().getFile(new Path(modelFileRelativePath.lastSegment()));
97
		final Resource modelResource = resourceSet.createResource(URI.createPlatformResourceURI(modelFile.getFullPath().toString()));
98
		affectedFiles.add(modelFile);
99
100
		final String kindParam = kind;
101
		AbstractTransactionalCommand command = new AbstractTransactionalCommand(editingDomain, "Creating diagram and model", affectedFiles) { //$NON-NLS-1$
102
117
103
			protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
118
			protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
104
				Canvas model = createInitialModel();
119
				Canvas model = createInitialModel();
105
				modelResource.getContents().add(createInitialRoot(model));
120
				attachModelToResource(model, modelResource);
106
				Diagram diagram = ViewService.createDiagram(model, kindParam, GMFGraphDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
121
122
				Diagram diagram = ViewService.createDiagram(model, CanvasEditPart.MODEL_ID, GMFGraphDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
107
				if (diagram != null) {
123
				if (diagram != null) {
108
					diagramResource.getContents().add(diagram);
124
					diagramResource.getContents().add(diagram);
109
					diagram.setName(diagramFile.getName());
125
					diagram.setName(diagramName);
110
					diagram.setElement(model);
126
					diagram.setElement(model);
111
				}
127
				}
128
112
				try {
129
				try {
113
					Map options = new HashMap();
130
					Map options = new HashMap();
114
					options.put(XMIResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$
131
					options.put(XMIResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$
115
					modelResource.save(options);
132
					modelResource.save(options);
116
					diagramResource.save(Collections.EMPTY_MAP);
133
					diagramResource.save(options);
117
				} catch (IOException e) {
134
				} catch (IOException e) {
118
135
119
					GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to store model and diagram resources", e); //$NON-NLS-1$
136
					GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to store model and diagram resources", e); //$NON-NLS-1$
Lines 121-145 Link Here
121
				return CommandResult.newOKCommandResult();
138
				return CommandResult.newOKCommandResult();
122
			}
139
			}
123
		};
140
		};
124
125
		try {
141
		try {
126
			OperationHistoryFactory.getOperationHistory().execute(command, new SubProgressMonitor(progressMonitor, 1), null);
142
			OperationHistoryFactory.getOperationHistory().execute(command, new SubProgressMonitor(progressMonitor, 1), null);
127
		} catch (ExecutionException e) {
143
		} catch (ExecutionException e) {
128
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$
144
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$
129
		}
145
		}
130
146
		setCharset(modelURI);
131
		try {
147
		setCharset(diagramURI);
132
			modelFile.setCharset("UTF-8", new SubProgressMonitor(progressMonitor, 1)); //$NON-NLS-1$
148
		return diagramResource;
133
		} catch (CoreException e) {
134
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to set charset for model file", e); //$NON-NLS-1$
135
		}
136
		try {
137
			diagramFile.setCharset("UTF-8", new SubProgressMonitor(progressMonitor, 1)); //$NON-NLS-1$
138
		} catch (CoreException e) {
139
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to set charset for diagram file", e); //$NON-NLS-1$
140
		}
141
142
		return diagramFile;
143
	}
149
	}
144
150
145
	/**
151
	/**
Lines 153-161 Link Here
153
	}
159
	}
154
160
155
	/**
161
	/**
162
	 * Store model element in the resource.
163
	 * <!-- begin-user-doc -->
164
	 * <!-- end-user-doc -->
165
	 * @generated
166
	 */
167
	private static void attachModelToResource(Canvas model, Resource resource) {
168
		resource.getContents().add(model);
169
	}
170
171
	/**
172
	 * @generated
173
	 */
174
	public static void selectElementsInDiagram(IDiagramWorkbenchPart diagramPart, List/*EditPart*/editParts) {
175
		diagramPart.getDiagramGraphicalViewer().deselectAll();
176
177
		EditPart firstPrimary = null;
178
		for (Iterator it = editParts.iterator(); it.hasNext();) {
179
			EditPart nextPart = (EditPart) it.next();
180
			diagramPart.getDiagramGraphicalViewer().appendSelection(nextPart);
181
			if (firstPrimary == null && nextPart instanceof IPrimaryEditPart) {
182
				firstPrimary = nextPart;
183
			}
184
		}
185
186
		if (!editParts.isEmpty()) {
187
			diagramPart.getDiagramGraphicalViewer().reveal(firstPrimary != null ? firstPrimary : (EditPart) editParts.get(0));
188
		}
189
	}
190
191
	/**
192
	 * @generated
193
	 */
194
	private static int findElementsInDiagramByID(DiagramEditPart diagramPart, EObject element, List editPartCollector) {
195
		IDiagramGraphicalViewer viewer = (IDiagramGraphicalViewer) diagramPart.getViewer();
196
		final int intialNumOfEditParts = editPartCollector.size();
197
198
		if (element instanceof View) { // support notation element lookup
199
			EditPart editPart = (EditPart) viewer.getEditPartRegistry().get(element);
200
			if (editPart != null) {
201
				editPartCollector.add(editPart);
202
				return 1;
203
			}
204
		}
205
206
		String elementID = EMFCoreUtil.getProxyID(element);
207
		List associatedParts = viewer.findEditPartsForElement(elementID, IGraphicalEditPart.class);
208
		// perform the possible hierarchy disjoint -> take the top-most parts only
209
		for (Iterator editPartIt = associatedParts.iterator(); editPartIt.hasNext();) {
210
			EditPart nextPart = (EditPart) editPartIt.next();
211
			EditPart parentPart = nextPart.getParent();
212
			while (parentPart != null && !associatedParts.contains(parentPart)) {
213
				parentPart = parentPart.getParent();
214
			}
215
			if (parentPart == null) {
216
				editPartCollector.add(nextPart);
217
			}
218
		}
219
220
		if (intialNumOfEditParts == editPartCollector.size()) {
221
			if (!associatedParts.isEmpty()) {
222
				editPartCollector.add(associatedParts.iterator().next());
223
			} else {
224
				if (element.eContainer() != null) {
225
					return findElementsInDiagramByID(diagramPart, element.eContainer(), editPartCollector);
226
				}
227
			}
228
		}
229
		return editPartCollector.size() - intialNumOfEditParts;
230
	}
231
232
	/**
156
	 * @generated
233
	 * @generated
157
	 */
234
	 */
158
	private static EObject createInitialRoot(Canvas model) {
235
	public static View findView(DiagramEditPart diagramEditPart, EObject targetElement, LazyElement2ViewMap lazyElement2ViewMap) {
159
		return model;
236
		boolean hasStructuralURI = false;
237
		if (targetElement.eResource() instanceof XMLResource) {
238
			hasStructuralURI = ((XMLResource) targetElement.eResource()).getID(targetElement) == null;
239
		}
240
241
		View view = null;
242
		if (hasStructuralURI && !lazyElement2ViewMap.getElement2ViewMap().isEmpty()) {
243
			view = (View) lazyElement2ViewMap.getElement2ViewMap().get(targetElement);
244
		} else if (findElementsInDiagramByID(diagramEditPart, targetElement, lazyElement2ViewMap.editPartTmpHolder) > 0) {
245
			EditPart editPart = (EditPart) lazyElement2ViewMap.editPartTmpHolder.get(0);
246
			lazyElement2ViewMap.editPartTmpHolder.clear();
247
			view = editPart.getModel() instanceof View ? (View) editPart.getModel() : null;
248
		}
249
250
		return (view == null) ? diagramEditPart.getDiagramView() : view;
160
	}
251
	}
252
253
	/**
254
	 * @generated
255
	 */
256
	public static class LazyElement2ViewMap {
257
258
		/**
259
		 * @generated
260
		 */
261
		private Map element2ViewMap;
262
263
		/**
264
		 * @generated
265
		 */
266
		private View scope;
267
268
		/**
269
		 * @generated
270
		 */
271
		private Set elementSet;
272
273
		/**
274
		 * @generated
275
		 */
276
		public final List editPartTmpHolder = new ArrayList();
277
278
		/**
279
		 * @generated
280
		 */
281
		public LazyElement2ViewMap(View scope, Set elements) {
282
			this.scope = scope;
283
			this.elementSet = elements;
284
		}
285
286
		/**
287
		 * @generated
288
		 */
289
		public final Map getElement2ViewMap() {
290
			if (element2ViewMap == null) {
291
				element2ViewMap = new HashMap();
292
				// map possible notation elements to itself as these can't be found by view.getElement()
293
				for (Iterator it = elementSet.iterator(); it.hasNext();) {
294
					EObject element = (EObject) it.next();
295
					if (element instanceof View) {
296
						View view = (View) element;
297
						if (view.getDiagram() == scope.getDiagram()) {
298
							element2ViewMap.put(element, element); // take only those that part of our diagram
299
						}
300
					}
301
				}
302
303
				buildElement2ViewMap(scope, element2ViewMap, elementSet);
304
			}
305
			return element2ViewMap;
306
		}
307
308
		/**
309
		 * @generated
310
		 */
311
		static Map buildElement2ViewMap(View parentView, Map element2ViewMap, Set elements) {
312
			if (elements.size() == element2ViewMap.size())
313
				return element2ViewMap;
314
315
			if (parentView.isSetElement() && !element2ViewMap.containsKey(parentView.getElement()) && elements.contains(parentView.getElement())) {
316
				element2ViewMap.put(parentView.getElement(), parentView);
317
				if (elements.size() == element2ViewMap.size())
318
					return element2ViewMap;
319
			}
320
321
			for (Iterator it = parentView.getChildren().iterator(); it.hasNext();) {
322
				buildElement2ViewMap((View) it.next(), element2ViewMap, elements);
323
				if (elements.size() == element2ViewMap.size())
324
					return element2ViewMap;
325
			}
326
			for (Iterator it = parentView.getSourceEdges().iterator(); it.hasNext();) {
327
				buildElement2ViewMap((View) it.next(), element2ViewMap, elements);
328
				if (elements.size() == element2ViewMap.size())
329
					return element2ViewMap;
330
			}
331
			for (Iterator it = parentView.getSourceEdges().iterator(); it.hasNext();) {
332
				buildElement2ViewMap((View) it.next(), element2ViewMap, elements);
333
				if (elements.size() == element2ViewMap.size())
334
					return element2ViewMap;
335
			}
336
			return element2ViewMap;
337
		}
338
	} //LazyElement2ViewMap	
339
161
}
340
}
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphInitDiagramFileAction.java (-1 / +1 lines)
Lines 91-97 Link Here
91
		ResourceSet resourceSet = editingDomain.getResourceSet();
91
		ResourceSet resourceSet = editingDomain.getResourceSet();
92
		EObject diagramRoot = null;
92
		EObject diagramRoot = null;
93
		try {
93
		try {
94
			Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(mySelectedModelFile.getFullPath().toString()), true);
94
			Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(mySelectedModelFile.getFullPath().toString(), true), true);
95
			diagramRoot = (EObject) resource.getContents().get(0);
95
			diagramRoot = (EObject) resource.getContents().get(0);
96
		} catch (WrappedException ex) {
96
		} catch (WrappedException ex) {
97
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to load resource: " + mySelectedModelFile.getFullPath().toString(), ex); //$NON-NLS-1$
97
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to load resource: " + mySelectedModelFile.getFullPath().toString(), ex); //$NON-NLS-1$
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphNewDiagramFileWizard.java (-6 / +17 lines)
Lines 36-41 Link Here
36
import org.eclipse.emf.ecore.resource.Resource;
36
import org.eclipse.emf.ecore.resource.Resource;
37
import org.eclipse.emf.ecore.resource.ResourceSet;
37
import org.eclipse.emf.ecore.resource.ResourceSet;
38
38
39
import org.eclipse.emf.ecore.util.FeatureMap;
40
41
import org.eclipse.emf.edit.provider.IWrapperItemProvider;
42
39
import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
43
import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
40
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
44
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
41
45
Lines 77-84 Link Here
77
81
78
import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
82
import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
79
83
80
import org.eclipse.ui.ide.IDE;
81
82
/**
84
/**
83
 * @generated
85
 * @generated
84
 */
86
 */
Lines 169-175 Link Here
169
		}
171
		}
170
172
171
		ResourceSet resourceSet = myEditingDomain.getResourceSet();
173
		ResourceSet resourceSet = myEditingDomain.getResourceSet();
172
		final Resource diagramResource = resourceSet.createResource(URI.createPlatformResourceURI(diagramFile.getFullPath().toString()));
174
		final Resource diagramResource = resourceSet.createResource(URI.createPlatformResourceURI(diagramFile.getFullPath().toString(), true));
173
175
174
		List affectedFiles = new LinkedList();
176
		List affectedFiles = new LinkedList();
175
		affectedFiles.add(mySelectedModelFile);
177
		affectedFiles.add(mySelectedModelFile);
Lines 191-197 Link Here
191
		try {
193
		try {
192
			OperationHistoryFactory.getOperationHistory().execute(command, new NullProgressMonitor(), null);
194
			OperationHistoryFactory.getOperationHistory().execute(command, new NullProgressMonitor(), null);
193
			diagramResource.save(Collections.EMPTY_MAP);
195
			diagramResource.save(Collections.EMPTY_MAP);
194
			IDE.openEditor(myWorkbenchPage, diagramFile);
196
			GMFGraphDiagramEditorUtil.openDiagram(diagramResource);
195
		} catch (ExecutionException e) {
197
		} catch (ExecutionException e) {
196
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$
198
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$
197
		} catch (IOException ex) {
199
		} catch (IOException ex) {
Lines 263-270 Link Here
263
			myDiagramRoot = null;
265
			myDiagramRoot = null;
264
			if (event.getSelection() instanceof IStructuredSelection) {
266
			if (event.getSelection() instanceof IStructuredSelection) {
265
				IStructuredSelection selection = (IStructuredSelection) event.getSelection();
267
				IStructuredSelection selection = (IStructuredSelection) event.getSelection();
266
				if (selection.size() == 1 && selection.getFirstElement() instanceof EObject) {
268
				if (selection.size() == 1) {
267
					myDiagramRoot = (EObject) selection.getFirstElement();
269
					Object selectedElement = selection.getFirstElement();
270
					if (selectedElement instanceof IWrapperItemProvider) {
271
						selectedElement = ((IWrapperItemProvider) selectedElement).getValue();
272
					}
273
					if (selectedElement instanceof FeatureMap.Entry) {
274
						selectedElement = ((FeatureMap.Entry) selectedElement).getValue();
275
					}
276
					if (selectedElement instanceof EObject) {
277
						myDiagramRoot = (EObject) selectedElement;
278
					}
268
				}
279
				}
269
			}
280
			}
270
			setPageComplete(validatePage());
281
			setPageComplete(validatePage());
(-)src/org/eclipse/gmf/graphdef/editor/providers/GMFGraphStructuralFeatureParser.java (-5 / +26 lines)
Lines 35-41 Link Here
35
	/**
35
	/**
36
	 * @generated
36
	 * @generated
37
	 */
37
	 */
38
	private static final MessageFormat DEFAULT_PROCESSOR = new MessageFormat("{0}"); //$NON-NLS-1$
38
	public static final MessageFormat DEFAULT_PROCESSOR = new MessageFormat("{0}"); //$NON-NLS-1$
39
39
40
	/**
40
	/**
41
	 * @generated
41
	 * @generated
Lines 68-76 Link Here
68
	/**
68
	/**
69
	 * @generated
69
	 * @generated
70
	 */
70
	 */
71
	protected EObject getDomainElement(EObject element) {
72
		return element;
73
	}
74
75
	/**
76
	 * @generated
77
	 */
71
	protected String getStringByPattern(IAdaptable adapter, int flags, String pattern, MessageFormat processor) {
78
	protected String getStringByPattern(IAdaptable adapter, int flags, String pattern, MessageFormat processor) {
72
		EObject element = (EObject) adapter.getAdapter(EObject.class);
79
		EObject element = (EObject) adapter.getAdapter(EObject.class);
73
		Object value = element.eGet(feature);
80
		element = getDomainElement(element);
81
		return getStringByPattern(element, feature, processor);
82
	}
83
84
	/**
85
	 * @generated
86
	 */
87
	protected String getStringByPattern(EObject element, EStructuralFeature feature, MessageFormat processor) {
88
		Object value = element == null ? null : element.eGet(feature);
74
		value = getValidValue(feature, value);
89
		value = getValidValue(feature, value);
75
		return processor.format(new Object[] { value }, new StringBuffer(), new FieldPosition(0)).toString();
90
		return processor.format(new Object[] { value }, new StringBuffer(), new FieldPosition(0)).toString();
76
	}
91
	}
Lines 95-100 Link Here
95
	 */
110
	 */
96
	public ICommand getParseCommand(IAdaptable adapter, Object[] values) {
111
	public ICommand getParseCommand(IAdaptable adapter, Object[] values) {
97
		EObject element = (EObject) adapter.getAdapter(EObject.class);
112
		EObject element = (EObject) adapter.getAdapter(EObject.class);
113
		element = getDomainElement(element);
98
		if (element == null) {
114
		if (element == null) {
99
			return UnexecutableCommand.INSTANCE;
115
			return UnexecutableCommand.INSTANCE;
100
		}
116
		}
Lines 112-121 Link Here
112
	 */
128
	 */
113
	public boolean isAffectingEvent(Object event, int flags) {
129
	public boolean isAffectingEvent(Object event, int flags) {
114
		if (event instanceof Notification) {
130
		if (event instanceof Notification) {
115
			if (feature == ((Notification) event).getFeature()) {
131
			return isAffectingFeature(((Notification) event).getFeature());
116
				return true;
117
			}
118
		}
132
		}
119
		return false;
133
		return false;
120
	}
134
	}
135
136
	/**
137
	 * @generated
138
	 */
139
	protected boolean isAffectingFeature(Object eventFeature) {
140
		return feature == eventFeature;
141
	}
121
}
142
}
(-)src/org/eclipse/gmf/graphdef/editor/providers/GMFGraphAbstractParser.java (+9 lines)
Lines 365-376 Link Here
365
	 */
365
	 */
366
	protected class InvalidValue {
366
	protected class InvalidValue {
367
367
368
		/**
369
		 * @generated
370
		 */
368
		private String description;
371
		private String description;
369
372
373
		/**
374
		 * @generated
375
		 */
370
		public InvalidValue(String description) {
376
		public InvalidValue(String description) {
371
			this.description = description;
377
			this.description = description;
372
		}
378
		}
373
379
380
		/**
381
		 * @generated
382
		 */
374
		public String toString() {
383
		public String toString() {
375
			return description;
384
			return description;
376
		}
385
		}
(-)src/org/eclipse/gmf/graphdef/editor/providers/GMFGraphParserProvider.java (-4 / +4 lines)
Lines 50-56 Link Here
50
	 * @generated
50
	 * @generated
51
	 */
51
	 */
52
	protected IParser createCompartmentCompartmentName_5001Parser() {
52
	protected IParser createCompartmentCompartmentName_5001Parser() {
53
		GMFGraphStructuralFeatureParser parser = new GMFGraphStructuralFeatureParser(GMFGraphPackage.eINSTANCE.getIdentity().getEStructuralFeature("name")); //$NON-NLS-1$
53
		GMFGraphStructuralFeatureParser parser = new GMFGraphStructuralFeatureParser(GMFGraphPackage.eINSTANCE.getIdentity_Name());
54
		return parser;
54
		return parser;
55
	}
55
	}
56
56
Lines 73-79 Link Here
73
	 * @generated
73
	 * @generated
74
	 */
74
	 */
75
	protected IParser createNodeNodeName_5002Parser() {
75
	protected IParser createNodeNodeName_5002Parser() {
76
		GMFGraphStructuralFeatureParser parser = new GMFGraphStructuralFeatureParser(GMFGraphPackage.eINSTANCE.getIdentity().getEStructuralFeature("name")); //$NON-NLS-1$
76
		GMFGraphStructuralFeatureParser parser = new GMFGraphStructuralFeatureParser(GMFGraphPackage.eINSTANCE.getIdentity_Name());
77
		return parser;
77
		return parser;
78
	}
78
	}
79
79
Lines 96-102 Link Here
96
	 * @generated
96
	 * @generated
97
	 */
97
	 */
98
	protected IParser createConnectionConnectionName_5003Parser() {
98
	protected IParser createConnectionConnectionName_5003Parser() {
99
		GMFGraphStructuralFeatureParser parser = new GMFGraphStructuralFeatureParser(GMFGraphPackage.eINSTANCE.getIdentity().getEStructuralFeature("name")); //$NON-NLS-1$
99
		GMFGraphStructuralFeatureParser parser = new GMFGraphStructuralFeatureParser(GMFGraphPackage.eINSTANCE.getIdentity_Name());
100
		return parser;
100
		return parser;
101
	}
101
	}
102
102
Lines 119-125 Link Here
119
	 * @generated
119
	 * @generated
120
	 */
120
	 */
121
	protected IParser createFigureGalleryFigureGalleryName_5004Parser() {
121
	protected IParser createFigureGalleryFigureGalleryName_5004Parser() {
122
		GMFGraphStructuralFeatureParser parser = new GMFGraphStructuralFeatureParser(GMFGraphPackage.eINSTANCE.getIdentity().getEStructuralFeature("name")); //$NON-NLS-1$
122
		GMFGraphStructuralFeatureParser parser = new GMFGraphStructuralFeatureParser(GMFGraphPackage.eINSTANCE.getIdentity_Name());
123
		return parser;
123
		return parser;
124
	}
124
	}
125
125
(-)src/org/eclipse/gmf/graphdef/editor/providers/GMFGraphShortcutsDecoratorProvider.java (-7 / +7 lines)
Lines 79-91 Link Here
79
		 */
79
		 */
80
		public void activate() {
80
		public void activate() {
81
			refresh();
81
			refresh();
82
			EditPart editPart = (EditPart) getDecoratorTarget().getAdapter(EditPart.class);
83
			Image image = GMFGraphDiagramEditorPlugin.getInstance().getBundledImage("icons/shortcut.gif"); //$NON-NLS-1$
84
			if (editPart instanceof ShapeEditPart) {
85
				setDecoration(getDecoratorTarget().addShapeDecoration(image, IDecoratorTarget.Direction.SOUTH_WEST, 0, false));
86
			} else if (editPart instanceof ConnectionEditPart) {
87
				setDecoration(getDecoratorTarget().addConnectionDecoration(image, 50, false));
88
			}
89
		}
82
		}
90
83
91
		/**
84
		/**
Lines 93-98 Link Here
93
		 */
86
		 */
94
		public void refresh() {
87
		public void refresh() {
95
			removeDecoration();
88
			removeDecoration();
89
			EditPart editPart = (EditPart) getDecoratorTarget().getAdapter(EditPart.class);
90
			Image image = GMFGraphDiagramEditorPlugin.getInstance().getBundledImage("icons/shortcut.gif"); //$NON-NLS-1$
91
			if (editPart instanceof ShapeEditPart) {
92
				setDecoration(getDecoratorTarget().addShapeDecoration(image, IDecoratorTarget.Direction.SOUTH_WEST, 0, false));
93
			} else if (editPart instanceof ConnectionEditPart) {
94
				setDecoration(getDecoratorTarget().addConnectionDecoration(image, 50, false));
95
			}
96
		}
96
		}
97
	}
97
	}
98
}
98
}
(-)src/org/eclipse/gmf/graphdef/editor/providers/GMFGraphElementTypes.java (-26 / +48 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 14-36 Link Here
14
import java.util.IdentityHashMap;
14
import java.util.IdentityHashMap;
15
import java.util.Map;
15
import java.util.Map;
16
import java.util.Set;
16
import java.util.Set;
17
17
import org.eclipse.core.runtime.IAdaptable;
18
import org.eclipse.core.runtime.IAdaptable;
18
import org.eclipse.emf.ecore.EClass;
19
import org.eclipse.emf.ecore.EClass;
20
import org.eclipse.emf.ecore.EClassifier;
19
import org.eclipse.emf.ecore.ENamedElement;
21
import org.eclipse.emf.ecore.ENamedElement;
20
import org.eclipse.emf.ecore.EStructuralFeature;
22
import org.eclipse.emf.ecore.EStructuralFeature;
23
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
24
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
21
import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
25
import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
22
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
26
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
23
import org.eclipse.jface.resource.ImageDescriptor;
27
import org.eclipse.jface.resource.ImageDescriptor;
24
import org.eclipse.jface.resource.ImageRegistry;
28
import org.eclipse.jface.resource.ImageRegistry;
25
import org.eclipse.swt.graphics.Image;
29
import org.eclipse.swt.graphics.Image;
26
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
27
28
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
29
30
30
/**
31
/**
31
 * @generated
32
 * @generated
32
 */
33
 */
33
public class GMFGraphElementTypes {
34
public class GMFGraphElementTypes extends ElementInitializers {
34
35
35
	/**
36
	/**
36
	 * @generated
37
	 * @generated
Lines 70-76 Link Here
70
	 */
71
	 */
71
	private static ImageDescriptor getProvidedImageDescriptor(ENamedElement element) {
72
	private static ImageDescriptor getProvidedImageDescriptor(ENamedElement element) {
72
		if (element instanceof EStructuralFeature) {
73
		if (element instanceof EStructuralFeature) {
73
			element = ((EStructuralFeature) element).getEContainingClass();
74
			EStructuralFeature feature = ((EStructuralFeature) element);
75
			EClass eContainingClass = feature.getEContainingClass();
76
			EClassifier eType = feature.getEType();
77
			if (eContainingClass != null && !eContainingClass.isAbstract()) {
78
				element = eContainingClass;
79
			} else if (eType instanceof EClass && !((EClass) eType).isAbstract()) {
80
				element = eType;
81
			}
74
		}
82
		}
75
		if (element instanceof EClass) {
83
		if (element instanceof EClass) {
76
			EClass eClass = (EClass) element;
84
			EClass eClass = (EClass) element;
Lines 146-164 Link Here
146
		Object type = hint.getAdapter(IElementType.class);
154
		Object type = hint.getAdapter(IElementType.class);
147
		if (elements == null) {
155
		if (elements == null) {
148
			elements = new IdentityHashMap();
156
			elements = new IdentityHashMap();
157
149
			elements.put(Canvas_1000, GMFGraphPackage.eINSTANCE.getCanvas());
158
			elements.put(Canvas_1000, GMFGraphPackage.eINSTANCE.getCanvas());
159
160
			elements.put(Compartment_2001, GMFGraphPackage.eINSTANCE.getCompartment());
161
162
			elements.put(Node_2002, GMFGraphPackage.eINSTANCE.getNode());
163
164
			elements.put(Connection_2003, GMFGraphPackage.eINSTANCE.getConnection());
165
166
			elements.put(FigureGallery_2004, GMFGraphPackage.eINSTANCE.getFigureGallery());
167
150
			elements.put(Rectangle_3001, GMFGraphPackage.eINSTANCE.getRectangle());
168
			elements.put(Rectangle_3001, GMFGraphPackage.eINSTANCE.getRectangle());
169
151
			elements.put(Rectangle_3002, GMFGraphPackage.eINSTANCE.getRectangle());
170
			elements.put(Rectangle_3002, GMFGraphPackage.eINSTANCE.getRectangle());
171
152
			elements.put(Ellipse_3003, GMFGraphPackage.eINSTANCE.getEllipse());
172
			elements.put(Ellipse_3003, GMFGraphPackage.eINSTANCE.getEllipse());
173
153
			elements.put(RoundedRectangle_3004, GMFGraphPackage.eINSTANCE.getRoundedRectangle());
174
			elements.put(RoundedRectangle_3004, GMFGraphPackage.eINSTANCE.getRoundedRectangle());
175
154
			elements.put(Polyline_3005, GMFGraphPackage.eINSTANCE.getPolyline());
176
			elements.put(Polyline_3005, GMFGraphPackage.eINSTANCE.getPolyline());
177
155
			elements.put(Ellipse_3006, GMFGraphPackage.eINSTANCE.getEllipse());
178
			elements.put(Ellipse_3006, GMFGraphPackage.eINSTANCE.getEllipse());
179
156
			elements.put(RoundedRectangle_3007, GMFGraphPackage.eINSTANCE.getRoundedRectangle());
180
			elements.put(RoundedRectangle_3007, GMFGraphPackage.eINSTANCE.getRoundedRectangle());
181
157
			elements.put(Polyline_3008, GMFGraphPackage.eINSTANCE.getPolyline());
182
			elements.put(Polyline_3008, GMFGraphPackage.eINSTANCE.getPolyline());
158
			elements.put(Compartment_2001, GMFGraphPackage.eINSTANCE.getCompartment());
183
159
			elements.put(Node_2002, GMFGraphPackage.eINSTANCE.getNode());
160
			elements.put(Connection_2003, GMFGraphPackage.eINSTANCE.getConnection());
161
			elements.put(FigureGallery_2004, GMFGraphPackage.eINSTANCE.getFigureGallery());
162
			elements.put(DiagramElementFigure_4001, GMFGraphPackage.eINSTANCE.getDiagramElement_Figure());
184
			elements.put(DiagramElementFigure_4001, GMFGraphPackage.eINSTANCE.getDiagramElement_Figure());
163
		}
185
		}
164
		return (ENamedElement) elements.get(type);
186
		return (ENamedElement) elements.get(type);
Lines 172-233 Link Here
172
	/**
194
	/**
173
	 * @generated
195
	 * @generated
174
	 */
196
	 */
175
	public static final IElementType Rectangle_3001 = getElementType("org.eclipse.gmf.graphdef.editor.Rectangle_3001"); //$NON-NLS-1$
197
	public static final IElementType Compartment_2001 = getElementType("org.eclipse.gmf.graphdef.editor.Compartment_2001"); //$NON-NLS-1$
176
198
177
	/**
199
	/**
178
	 * @generated
200
	 * @generated
179
	 */
201
	 */
180
	public static final IElementType Rectangle_3002 = getElementType("org.eclipse.gmf.graphdef.editor.Rectangle_3002"); //$NON-NLS-1$
202
	public static final IElementType Node_2002 = getElementType("org.eclipse.gmf.graphdef.editor.Node_2002"); //$NON-NLS-1$
181
203
182
	/**
204
	/**
183
	 * @generated
205
	 * @generated
184
	 */
206
	 */
185
	public static final IElementType Ellipse_3003 = getElementType("org.eclipse.gmf.graphdef.editor.Ellipse_3003"); //$NON-NLS-1$
207
	public static final IElementType Connection_2003 = getElementType("org.eclipse.gmf.graphdef.editor.Connection_2003"); //$NON-NLS-1$
186
208
187
	/**
209
	/**
188
	 * @generated
210
	 * @generated
189
	 */
211
	 */
190
	public static final IElementType RoundedRectangle_3004 = getElementType("org.eclipse.gmf.graphdef.editor.RoundedRectangle_3004"); //$NON-NLS-1$
212
	public static final IElementType FigureGallery_2004 = getElementType("org.eclipse.gmf.graphdef.editor.FigureGallery_2004"); //$NON-NLS-1$
191
213
192
	/**
214
	/**
193
	 * @generated
215
	 * @generated
194
	 */
216
	 */
195
	public static final IElementType Polyline_3005 = getElementType("org.eclipse.gmf.graphdef.editor.Polyline_3005"); //$NON-NLS-1$
217
	public static final IElementType Rectangle_3001 = getElementType("org.eclipse.gmf.graphdef.editor.Rectangle_3001"); //$NON-NLS-1$
196
218
197
	/**
219
	/**
198
	 * @generated
220
	 * @generated
199
	 */
221
	 */
200
	public static final IElementType Ellipse_3006 = getElementType("org.eclipse.gmf.graphdef.editor.Ellipse_3006"); //$NON-NLS-1$
222
	public static final IElementType Rectangle_3002 = getElementType("org.eclipse.gmf.graphdef.editor.Rectangle_3002"); //$NON-NLS-1$
201
223
202
	/**
224
	/**
203
	 * @generated
225
	 * @generated
204
	 */
226
	 */
205
	public static final IElementType RoundedRectangle_3007 = getElementType("org.eclipse.gmf.graphdef.editor.RoundedRectangle_3007"); //$NON-NLS-1$
227
	public static final IElementType Ellipse_3003 = getElementType("org.eclipse.gmf.graphdef.editor.Ellipse_3003"); //$NON-NLS-1$
206
228
207
	/**
229
	/**
208
	 * @generated
230
	 * @generated
209
	 */
231
	 */
210
	public static final IElementType Polyline_3008 = getElementType("org.eclipse.gmf.graphdef.editor.Polyline_3008"); //$NON-NLS-1$
232
	public static final IElementType RoundedRectangle_3004 = getElementType("org.eclipse.gmf.graphdef.editor.RoundedRectangle_3004"); //$NON-NLS-1$
211
233
212
	/**
234
	/**
213
	 * @generated
235
	 * @generated
214
	 */
236
	 */
215
	public static final IElementType Compartment_2001 = getElementType("org.eclipse.gmf.graphdef.editor.Compartment_2001"); //$NON-NLS-1$
237
	public static final IElementType Polyline_3005 = getElementType("org.eclipse.gmf.graphdef.editor.Polyline_3005"); //$NON-NLS-1$
216
238
217
	/**
239
	/**
218
	 * @generated
240
	 * @generated
219
	 */
241
	 */
220
	public static final IElementType Node_2002 = getElementType("org.eclipse.gmf.graphdef.editor.Node_2002"); //$NON-NLS-1$
242
	public static final IElementType Ellipse_3006 = getElementType("org.eclipse.gmf.graphdef.editor.Ellipse_3006"); //$NON-NLS-1$
221
243
222
	/**
244
	/**
223
	 * @generated
245
	 * @generated
224
	 */
246
	 */
225
	public static final IElementType Connection_2003 = getElementType("org.eclipse.gmf.graphdef.editor.Connection_2003"); //$NON-NLS-1$
247
	public static final IElementType RoundedRectangle_3007 = getElementType("org.eclipse.gmf.graphdef.editor.RoundedRectangle_3007"); //$NON-NLS-1$
226
248
227
	/**
249
	/**
228
	 * @generated
250
	 * @generated
229
	 */
251
	 */
230
	public static final IElementType FigureGallery_2004 = getElementType("org.eclipse.gmf.graphdef.editor.FigureGallery_2004"); //$NON-NLS-1$
252
	public static final IElementType Polyline_3008 = getElementType("org.eclipse.gmf.graphdef.editor.Polyline_3008"); //$NON-NLS-1$
231
253
232
	/**
254
	/**
233
	 * @generated
255
	 * @generated
Lines 253-258 Link Here
253
		if (KNOWN_ELEMENT_TYPES == null) {
275
		if (KNOWN_ELEMENT_TYPES == null) {
254
			KNOWN_ELEMENT_TYPES = new HashSet();
276
			KNOWN_ELEMENT_TYPES = new HashSet();
255
			KNOWN_ELEMENT_TYPES.add(Canvas_1000);
277
			KNOWN_ELEMENT_TYPES.add(Canvas_1000);
278
			KNOWN_ELEMENT_TYPES.add(Compartment_2001);
279
			KNOWN_ELEMENT_TYPES.add(Node_2002);
280
			KNOWN_ELEMENT_TYPES.add(Connection_2003);
281
			KNOWN_ELEMENT_TYPES.add(FigureGallery_2004);
256
			KNOWN_ELEMENT_TYPES.add(Rectangle_3001);
282
			KNOWN_ELEMENT_TYPES.add(Rectangle_3001);
257
			KNOWN_ELEMENT_TYPES.add(Rectangle_3002);
283
			KNOWN_ELEMENT_TYPES.add(Rectangle_3002);
258
			KNOWN_ELEMENT_TYPES.add(Ellipse_3003);
284
			KNOWN_ELEMENT_TYPES.add(Ellipse_3003);
Lines 261-270 Link Here
261
			KNOWN_ELEMENT_TYPES.add(Ellipse_3006);
287
			KNOWN_ELEMENT_TYPES.add(Ellipse_3006);
262
			KNOWN_ELEMENT_TYPES.add(RoundedRectangle_3007);
288
			KNOWN_ELEMENT_TYPES.add(RoundedRectangle_3007);
263
			KNOWN_ELEMENT_TYPES.add(Polyline_3008);
289
			KNOWN_ELEMENT_TYPES.add(Polyline_3008);
264
			KNOWN_ELEMENT_TYPES.add(Compartment_2001);
265
			KNOWN_ELEMENT_TYPES.add(Node_2002);
266
			KNOWN_ELEMENT_TYPES.add(Connection_2003);
267
			KNOWN_ELEMENT_TYPES.add(FigureGallery_2004);
268
			KNOWN_ELEMENT_TYPES.add(DiagramElementFigure_4001);
290
			KNOWN_ELEMENT_TYPES.add(DiagramElementFigure_4001);
269
		}
291
		}
270
		return KNOWN_ELEMENT_TYPES.contains(elementType);
292
		return KNOWN_ELEMENT_TYPES.contains(elementType);
(-)src/org/eclipse/gmf/graphdef/editor/providers/GMFGraphPropertyProvider.java (-226 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.providers;
12
13
import org.eclipse.emf.ecore.EObject;
14
import org.eclipse.gef.EditPart;
15
import org.eclipse.gmf.runtime.common.core.service.IOperation;
16
import org.eclipse.gmf.runtime.common.ui.services.properties.GetPropertySourceOperation;
17
import org.eclipse.gmf.runtime.common.ui.services.properties.ICompositePropertySource;
18
import org.eclipse.gmf.runtime.common.ui.services.properties.IPropertiesProvider;
19
import org.eclipse.gmf.runtime.emf.ui.properties.providers.GenericEMFPropertiesProvider;
20
import org.eclipse.gmf.runtime.notation.View;
21
import java.util.ArrayList;
22
import java.util.Collection;
23
import java.util.Iterator;
24
import java.util.LinkedList;
25
import java.util.List;
26
27
import org.eclipse.emf.common.notify.AdapterFactory;
28
29
import org.eclipse.emf.ecore.EClass;
30
import org.eclipse.emf.ecore.EStructuralFeature;
31
32
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
33
import org.eclipse.emf.edit.provider.IItemPropertySource;
34
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
35
36
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
37
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
38
import org.eclipse.gmf.gmfgraph.Layoutable;
39
import org.eclipse.gmf.gmfgraph.Point;
40
import org.eclipse.gmf.gmfgraph.Polyline;
41
42
import org.eclipse.gmf.gmfgraph.XYLayoutData;
43
44
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
45
46
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
47
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
48
49
import org.eclipse.gmf.runtime.common.ui.services.properties.descriptors.CompositePropertySource;
50
51
import org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositePropertySource;
52
import org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositeSourcePropertyDescriptor;
53
54
import org.eclipse.ui.views.properties.IPropertyDescriptor;
55
56
/**
57
 * @generated
58
 */
59
public class GMFGraphPropertyProvider extends GenericEMFPropertiesProvider implements IPropertiesProvider {
60
61
	/**
62
	 * @generated
63
	 */
64
	public boolean provides(IOperation operation) {
65
		if (operation instanceof GetPropertySourceOperation) {
66
			Object object = ((GetPropertySourceOperation) operation).getObject();
67
			return getSemanticElement(object) != null;
68
		}
69
		return false;
70
	}
71
72
	/**
73
	 * @generated
74
	 */
75
	public ICompositePropertySource getPropertySource(Object object) {
76
		EObject element = getSemanticElement(object);
77
		if (element != null) {
78
			if (element instanceof Layoutable) {
79
				CompositePropertySource compositeSource = new CompositePropertySource(element);
80
				compositeSource.addPropertySource(super.getPropertySource(element));
81
				class ChildMetaclassItemPropertyDescriptor extends ItemPropertyDescriptor {
82
83
					private EObject[] myValues;
84
85
					ChildMetaclassItemPropertyDescriptor(AdapterFactory adapterFactory, String displayName, String description, EStructuralFeature feature, boolean isSettable, EObject[] valueInstances) {
86
						super(adapterFactory, displayName, description, feature, isSettable);
87
						myValues = valueInstances;
88
					}
89
90
					protected Collection getComboBoxObjects(Object object) {
91
						if (object instanceof EObject) {
92
							EObject eObject = (EObject) object;
93
							Object currentValue = getValue(eObject, feature);
94
							Collection result = new ArrayList();
95
							result.add(currentValue);
96
							EClass valueEClass = currentValue instanceof EObject ? ((EObject) currentValue).eClass() : null;
97
							for (int i = 0; i < myValues.length; i++) {
98
								if (myValues[i].eClass() == valueEClass) {
99
									continue;
100
								}
101
								result.add(myValues[i]);
102
							}
103
							if (currentValue != null) {
104
								result.add(null);
105
							}
106
							return result;
107
						}
108
						return null;
109
					}
110
111
					public void setPropertyValue(Object object, Object value) {
112
						if (value instanceof EObject) {
113
							EClass eClass = ((EObject) value).eClass();
114
							value = eClass.getEPackage().getEFactoryInstance().create(eClass);
115
							if (value instanceof XYLayoutData) {
116
								XYLayoutData xyLayoutData = (XYLayoutData) value;
117
								xyLayoutData.setTopLeft(GMFGraphFactory.eINSTANCE.createPoint());
118
								xyLayoutData.getTopLeft().setX(0);
119
								xyLayoutData.getTopLeft().setY(0);
120
								xyLayoutData.setSize(GMFGraphFactory.eINSTANCE.createDimension());
121
								xyLayoutData.getSize().setDx(40);
122
								xyLayoutData.getSize().setDy(40);
123
							}
124
						}
125
						super.setPropertyValue(object, value);
126
					}
127
				}
128
129
				class SingleDescriptorPropertySource implements IItemPropertySource {
130
131
					private IItemPropertyDescriptor myPropertyDescriptor;
132
133
					private List myDescriptors = new LinkedList();
134
135
					SingleDescriptorPropertySource(IItemPropertyDescriptor propertyDescriptor) {
136
						myPropertyDescriptor = propertyDescriptor;
137
						myDescriptors.add(myPropertyDescriptor);
138
					}
139
140
					public List getPropertyDescriptors(Object object) {
141
						return myDescriptors;
142
					}
143
144
					public IItemPropertyDescriptor getPropertyDescriptor(Object object, Object propertyID) {
145
						return myPropertyDescriptor;
146
					}
147
148
					public Object getEditableValue(Object object) {
149
						return object;
150
					}
151
152
				}
153
154
				IItemPropertyDescriptor layoutPropertyDescriptor = new ChildMetaclassItemPropertyDescriptor(GMFGraphDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory(),
155
						"Layout Manager", "Layout Manager", GMFGraphPackage.eINSTANCE.getLayoutable_Layout(), true, new EObject[] { GMFGraphFactory.eINSTANCE.createBorderLayout(),
156
								GMFGraphFactory.eINSTANCE.createCustomLayout(), GMFGraphFactory.eINSTANCE.createFlowLayout(), GMFGraphFactory.eINSTANCE.createGridLayout(),
157
								GMFGraphFactory.eINSTANCE.createStackLayout(), GMFGraphFactory.eINSTANCE.createXYLayout() });
158
				compositeSource.addPropertySource(new EMFCompositePropertySource(element, new SingleDescriptorPropertySource(layoutPropertyDescriptor), "EMF")); //$NON-NLS-1$
159
				IItemPropertyDescriptor layoutDataPropertyDescriptor = new ChildMetaclassItemPropertyDescriptor(GMFGraphDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory(),
160
						"Layout Data", "Layout Data", GMFGraphPackage.eINSTANCE.getLayoutable_LayoutData(), true, new EObject[] { GMFGraphFactory.eINSTANCE.createBorderLayoutData(),
161
								GMFGraphFactory.eINSTANCE.createCustomLayoutData(), GMFGraphFactory.eINSTANCE.createGridLayoutData(), GMFGraphFactory.eINSTANCE.createXYLayoutData() });
162
				compositeSource.addPropertySource(new EMFCompositePropertySource(element, new SingleDescriptorPropertySource(layoutDataPropertyDescriptor), "EMF")); //$NON-NLS-1$
163
164
				if (element instanceof Polyline) {
165
					int counter = 1;
166
					for (Iterator it = ((Polyline) element).getTemplate().iterator(); it.hasNext(); counter++) {
167
						Point nextPoint = (Point) it.next();
168
						final String titleX = "Point " + counter + " X";
169
						IItemPropertyDescriptor nextPointPropertyDescriptorX = new ItemPropertyDescriptor(GMFGraphDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory(), titleX, titleX,
170
								GMFGraphPackage.eINSTANCE.getPoint_X(), true, "Template");
171
						compositeSource.addPropertySource(new EMFCompositePropertySource(nextPoint, new SingleDescriptorPropertySource(nextPointPropertyDescriptorX), "EMF") {
172
173
							protected IPropertyDescriptor newPropertyDescriptor(IItemPropertyDescriptor itemPropertyDescriptor) {
174
								return new EMFCompositeSourcePropertyDescriptor(object, itemPropertyDescriptor, getCategory()) {
175
176
									public Object getId() {
177
										return titleX;
178
									}
179
								};
180
							}
181
						});
182
183
						final String titleY = "Point " + counter + " Y";
184
						IItemPropertyDescriptor nextPointPropertyDescriptorY = new ItemPropertyDescriptor(GMFGraphDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory(), titleY, titleY,
185
								GMFGraphPackage.eINSTANCE.getPoint_Y(), true, "Template");
186
						compositeSource.addPropertySource(new EMFCompositePropertySource(nextPoint, new SingleDescriptorPropertySource(nextPointPropertyDescriptorY), "EMF") {
187
188
							protected IPropertyDescriptor newPropertyDescriptor(IItemPropertyDescriptor itemPropertyDescriptor) {
189
								return new EMFCompositeSourcePropertyDescriptor(object, itemPropertyDescriptor, getCategory()) {
190
191
									public Object getId() {
192
										return titleY;
193
									}
194
								};
195
							}
196
						});
197
					}
198
				}
199
200
				return compositeSource;
201
			}
202
			return super.getPropertySource(element);
203
		}
204
		return null;
205
	}
206
207
	/**
208
	 * @generated
209
	 */
210
	protected EObject getSemanticElement(Object object) {
211
		View view = null;
212
		if (object instanceof View) {
213
			view = (View) object;
214
		} else if (object instanceof EditPart) {
215
			EditPart editPart = (EditPart) object;
216
			if (editPart.getModel() instanceof View) {
217
				view = (View) editPart.getModel();
218
			}
219
		}
220
		if (view != null && CanvasEditPart.MODEL_ID.equals(GMFGraphVisualIDRegistry.getModelID(view))) {
221
			return view.getElement();
222
		}
223
		return null;
224
	}
225
226
}
(-)src/org/eclipse/gmf/graphdef/editor/providers/GMFGraphPaletteProvider.java (-48 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.providers;
12
13
import java.util.Map;
14
import org.eclipse.core.runtime.IConfigurationElement;
15
import org.eclipse.gef.palette.PaletteRoot;
16
import org.eclipse.gmf.runtime.common.core.service.AbstractProvider;
17
import org.eclipse.gmf.runtime.common.core.service.IOperation;
18
import org.eclipse.gmf.runtime.diagram.ui.services.palette.IPaletteProvider;
19
import org.eclipse.ui.IEditorPart;
20
import org.eclipse.gmf.graphdef.editor.part.GMFGraphPaletteFactory;
21
22
/**
23
 * @generated
24
 */
25
public class GMFGraphPaletteProvider extends AbstractProvider implements IPaletteProvider {
26
27
	/**
28
	 * @generated
29
	 */
30
	public void contributeToPalette(IEditorPart editor, Object content, PaletteRoot root, Map predefinedEntries) {
31
		GMFGraphPaletteFactory factory = new GMFGraphPaletteFactory();
32
		factory.fillPalette(root);
33
	}
34
35
	/**
36
	 * @generated
37
	 */
38
	public void setContributions(IConfigurationElement configElement) {
39
		// no configuration
40
	}
41
42
	/**
43
	 * @generated
44
	 */
45
	public boolean provides(IOperation operation) {
46
		return false; // all logic is done in the service
47
	}
48
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/NodeVisualFacetsCanonicalEditPolicy.java (-45 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
14
import org.eclipse.gmf.runtime.notation.View;
15
import java.util.LinkedList;
16
import java.util.List;
17
18
/**
19
 * @generated
20
 */
21
public class NodeVisualFacetsCanonicalEditPolicy extends CanonicalEditPolicy {
22
23
	/**
24
	 * @generated
25
	 */
26
	protected List getSemanticChildrenList() {
27
		List result = new LinkedList();
28
		return result;
29
	}
30
31
	/**
32
	 * @generated
33
	 */
34
	protected boolean shouldDeleteView(View view) {
35
		return view.isSetElement() && view.getElement() != null && view.getElement().eIsProxy();
36
	}
37
38
	/**
39
	 * @generated
40
	 */
41
	protected String getDefaultFactoryHint() {
42
		return null;
43
	}
44
45
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/NodeCanonicalEditPolicy.java (-45 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
14
import org.eclipse.gmf.runtime.notation.View;
15
import java.util.LinkedList;
16
import java.util.List;
17
18
/**
19
 * @generated
20
 */
21
public class NodeCanonicalEditPolicy extends CanonicalEditPolicy {
22
23
	/**
24
	 * @generated
25
	 */
26
	protected List getSemanticChildrenList() {
27
		List result = new LinkedList();
28
		return result;
29
	}
30
31
	/**
32
	 * @generated
33
	 */
34
	protected boolean shouldDeleteView(View view) {
35
		return view.isSetElement() && view.getElement() != null && view.getElement().eIsProxy();
36
	}
37
38
	/**
39
	 * @generated
40
	 */
41
	protected String getDefaultFactoryHint() {
42
		return null;
43
	}
44
45
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/GMFGraphExtNodeLabelHostLayoutEditPolicy.java (-221 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
import java.util.ArrayList;
14
import java.util.Iterator;
15
import java.util.List;
16
17
import org.eclipse.draw2d.geometry.Rectangle;
18
import org.eclipse.gef.EditPart;
19
import org.eclipse.gef.GraphicalEditPart;
20
import org.eclipse.gef.Request;
21
import org.eclipse.gef.commands.Command;
22
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
23
import org.eclipse.gef.requests.ChangeBoundsRequest;
24
import org.eclipse.gef.requests.GroupRequest;
25
import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
26
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy;
27
import org.eclipse.gmf.runtime.notation.NotationPackage;
28
import org.eclipse.gmf.runtime.notation.View;
29
30
/**
31
 * @generated
32
 */
33
public class GMFGraphExtNodeLabelHostLayoutEditPolicy extends XYLayoutEditPolicy {
34
35
	/**
36
	 * @generated
37
	 */
38
	private LayoutEditPolicy realLayoutEditPolicy;
39
40
	/**
41
	 * @generated
42
	 */
43
	public LayoutEditPolicy getRealLayoutEditPolicy() {
44
		return realLayoutEditPolicy;
45
	}
46
47
	/**
48
	 * @generated
49
	 */
50
	public void setRealLayoutEditPolicy(LayoutEditPolicy realLayoutEditPolicy) {
51
		this.realLayoutEditPolicy = realLayoutEditPolicy;
52
	}
53
54
	/**
55
	 * @generated
56
	 */
57
	protected boolean isExternalLabel(EditPart editPart) {
58
		return false;
59
	}
60
61
	/**
62
	 * @generated
63
	 */
64
	protected final List getExternalLabels(GroupRequest request) {
65
		List editParts = new ArrayList();
66
		if (request.getEditParts() != null) {
67
			for (Iterator it = request.getEditParts().iterator(); it.hasNext();) {
68
				EditPart editPart = (EditPart) it.next();
69
				if (isExternalLabel(editPart)) {
70
					editParts.add(editPart);
71
				}
72
			}
73
		}
74
		return editParts;
75
	}
76
77
	/**
78
	 * @generated
79
	 */
80
	public Command getCommand(Request request) {
81
		if (REQ_MOVE_CHILDREN.equals(request.getType())) {
82
			ChangeBoundsRequest cbRequest = (ChangeBoundsRequest) request;
83
			List extLabels = getExternalLabels(cbRequest);
84
			if (!extLabels.isEmpty()) {
85
				List editParts = cbRequest.getEditParts();
86
				Command cmd = null;
87
				if (realLayoutEditPolicy != null && editParts.size() > extLabels.size()) {
88
					List other = new ArrayList(editParts);
89
					other.removeAll(extLabels);
90
					cbRequest.setEditParts(other);
91
					cmd = realLayoutEditPolicy.getCommand(request);
92
				}
93
				cbRequest.setEditParts(extLabels);
94
				Command extLabelsCmd = getMoveChildrenCommand(request);
95
				cbRequest.setEditParts(editParts);
96
				return cmd == null ? extLabelsCmd : cmd.chain(extLabelsCmd);
97
			}
98
		}
99
		if (request instanceof GroupRequest) {
100
			List extLabels = getExternalLabels((GroupRequest) request);
101
			if (!extLabels.isEmpty()) {
102
				return null;
103
			}
104
		}
105
		return realLayoutEditPolicy == null ? null : realLayoutEditPolicy.getCommand(request);
106
	}
107
108
	/**
109
	 * @generated
110
	 */
111
	protected Object getConstraintFor(ChangeBoundsRequest request, GraphicalEditPart child) {
112
		int dx = ((Integer) ViewUtil.getStructuralFeatureValue((View) child.getModel(), NotationPackage.eINSTANCE.getLocation_X())).intValue();
113
		int dy = ((Integer) ViewUtil.getStructuralFeatureValue((View) child.getModel(), NotationPackage.eINSTANCE.getLocation_Y())).intValue();
114
		Rectangle r = new Rectangle(dx, dy, 0, 0);
115
		child.getFigure().translateToAbsolute(r);
116
		r.translate(request.getMoveDelta());
117
		child.getFigure().translateToRelative(r);
118
		return r;
119
	}
120
121
	/**
122
	 * @generated
123
	 */
124
	public boolean understandsRequest(Request req) {
125
		if (realLayoutEditPolicy != null && realLayoutEditPolicy.understandsRequest(req)) {
126
			return true;
127
		}
128
		return super.understandsRequest(req);
129
	}
130
131
	/**
132
	 * @generated
133
	 */
134
	protected void decorateChild(EditPart child) {
135
	}
136
137
	/**
138
	 * @generated
139
	 */
140
	public void setHost(EditPart host) {
141
		super.setHost(host);
142
		if (realLayoutEditPolicy != null) {
143
			realLayoutEditPolicy.setHost(host);
144
		}
145
	}
146
147
	/**
148
	 * @generated
149
	 */
150
	public void activate() {
151
		super.activate();
152
		if (realLayoutEditPolicy != null) {
153
			realLayoutEditPolicy.activate();
154
		}
155
	}
156
157
	/**
158
	 * @generated
159
	 */
160
	public void deactivate() {
161
		super.deactivate();
162
		if (realLayoutEditPolicy != null) {
163
			realLayoutEditPolicy.deactivate();
164
		}
165
	}
166
167
	/**
168
	 * @generated
169
	 */
170
	public EditPart getTargetEditPart(Request request) {
171
		if (realLayoutEditPolicy != null) {
172
			return realLayoutEditPolicy.getTargetEditPart(request);
173
		} else {
174
			return super.getTargetEditPart(request);
175
		}
176
	}
177
178
	/**
179
	 * @generated
180
	 */
181
	public void showSourceFeedback(Request request) {
182
		if (realLayoutEditPolicy != null) {
183
			realLayoutEditPolicy.showSourceFeedback(request);
184
		} else {
185
			super.showSourceFeedback(request);
186
		}
187
	}
188
189
	/**
190
	 * @generated
191
	 */
192
	public void eraseSourceFeedback(Request request) {
193
		if (realLayoutEditPolicy != null) {
194
			realLayoutEditPolicy.eraseSourceFeedback(request);
195
		} else {
196
			super.eraseSourceFeedback(request);
197
		}
198
	}
199
200
	/**
201
	 * @generated
202
	 */
203
	public void showTargetFeedback(Request request) {
204
		if (realLayoutEditPolicy != null) {
205
			realLayoutEditPolicy.showTargetFeedback(request);
206
		} else {
207
			super.showTargetFeedback(request);
208
		}
209
	}
210
211
	/**
212
	 * @generated
213
	 */
214
	public void eraseTargetFeedback(Request request) {
215
		if (realLayoutEditPolicy != null) {
216
			realLayoutEditPolicy.eraseTargetFeedback(request);
217
		} else {
218
			super.eraseTargetFeedback(request);
219
		}
220
	}
221
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/ConnectionCanonicalEditPolicy.java (-45 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
14
import org.eclipse.gmf.runtime.notation.View;
15
import java.util.LinkedList;
16
import java.util.List;
17
18
/**
19
 * @generated
20
 */
21
public class ConnectionCanonicalEditPolicy extends CanonicalEditPolicy {
22
23
	/**
24
	 * @generated
25
	 */
26
	protected List getSemanticChildrenList() {
27
		List result = new LinkedList();
28
		return result;
29
	}
30
31
	/**
32
	 * @generated
33
	 */
34
	protected boolean shouldDeleteView(View view) {
35
		return view.isSetElement() && view.getElement() != null && view.getElement().eIsProxy();
36
	}
37
38
	/**
39
	 * @generated
40
	 */
41
	protected String getDefaultFactoryHint() {
42
		return null;
43
	}
44
45
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/FigureGalleryItemSemanticEditPolicy.java (-13 / +28 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-21 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import java.util.ArrayList;
14
import java.util.Collection;
15
import java.util.Collections;
16
import java.util.Iterator;
17
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.emf.ecore.EObject;
20
import org.eclipse.gef.EditPart;
13
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.Command;
22
import org.eclipse.gef.commands.CompoundCommand;
23
import org.eclipse.gmf.graphdef.editor.edit.parts.FigureGalleryEditPart;
24
import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper;
14
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
25
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
15
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
16
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
26
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
17
import org.eclipse.emf.ecore.EObject;
27
import org.eclipse.gmf.runtime.notation.Edge;
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.gmf.runtime.notation.View;
28
import org.eclipse.gmf.runtime.notation.View;
20
29
21
/**
30
/**
Lines 27-33 Link Here
27
	 * @generated
36
	 * @generated
28
	 */
37
	 */
29
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
38
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
30
		return getMSLWrapper(new DestroyElementCommand(req) {
39
		CompoundCommand cc = new CompoundCommand();
40
		Collection allEdges = new ArrayList();
41
		View view = (View) getHost().getModel();
42
		allEdges.addAll(view.getSourceEdges());
43
		allEdges.addAll(view.getTargetEdges());
44
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
45
			Edge nextEdge = (Edge) it.next();
46
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
47
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(
48
					new DestroyElementRequest(((FigureGalleryEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()), Collections.EMPTY_MAP);
49
			cc.add(nextEditPart.getCommand(editCommandRequest));
50
		}
51
		cc.add(getMSLWrapper(new DestroyElementCommand(req) {
31
52
32
			protected EObject getElementToDestroy() {
53
			protected EObject getElementToDestroy() {
33
				View view = (View) getHost().getModel();
54
				View view = (View) getHost().getModel();
Lines 38-50 Link Here
38
				return super.getElementToDestroy();
59
				return super.getElementToDestroy();
39
			}
60
			}
40
61
41
		});
62
		}));
42
	}
63
		return cc;
43
44
	/**
45
	 * @generated
46
	 */
47
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
48
		return super.getCreateRelationshipCommand(req);
49
	}
64
	}
50
}
65
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/GMFGraphTextSelectionEditPolicy.java (-9 / +1 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 17-23 Link Here
17
import org.eclipse.draw2d.Label;
17
import org.eclipse.draw2d.Label;
18
import org.eclipse.draw2d.RectangleFigure;
18
import org.eclipse.draw2d.RectangleFigure;
19
import org.eclipse.draw2d.geometry.Rectangle;
19
import org.eclipse.draw2d.geometry.Rectangle;
20
import org.eclipse.gef.LayerConstants;
21
import org.eclipse.gef.editpolicies.SelectionEditPolicy;
20
import org.eclipse.gef.editpolicies.SelectionEditPolicy;
22
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
21
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel;
23
22
Lines 110-122 Link Here
110
	/**
109
	/**
111
	 * @generated
110
	 * @generated
112
	 */
111
	 */
113
	protected IFigure getFeedbackLayer() {
114
		return getLayer(LayerConstants.SCALED_FEEDBACK_LAYER);
115
	}
116
117
	/**
118
	 * @generated
119
	 */
120
	protected Rectangle getFeedbackBounds() {
112
	protected Rectangle getFeedbackBounds() {
121
		Rectangle bounds;
113
		Rectangle bounds;
122
		if (getHostFigure() instanceof Label) {
114
		if (getHostFigure() instanceof Label) {
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/CompartmentCanonicalEditPolicy.java (-45 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
14
import org.eclipse.gmf.runtime.notation.View;
15
import java.util.LinkedList;
16
import java.util.List;
17
18
/**
19
 * @generated
20
 */
21
public class CompartmentCanonicalEditPolicy extends CanonicalEditPolicy {
22
23
	/**
24
	 * @generated
25
	 */
26
	protected List getSemanticChildrenList() {
27
		List result = new LinkedList();
28
		return result;
29
	}
30
31
	/**
32
	 * @generated
33
	 */
34
	protected boolean shouldDeleteView(View view) {
35
		return view.isSetElement() && view.getElement() != null && view.getElement().eIsProxy();
36
	}
37
38
	/**
39
	 * @generated
40
	 */
41
	protected String getDefaultFactoryHint() {
42
		return null;
43
	}
44
45
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/NodeGraphicalNodeEditPolicy.java (-17 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
/**
14
 * @generated
15
 */
16
public class NodeGraphicalNodeEditPolicy extends GMFGraphGraphicalNodeEditPolicy {
17
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/EllipseGraphicalNodeEditPolicy.java (-17 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
/**
14
 * @generated
15
 */
16
public class EllipseGraphicalNodeEditPolicy extends GMFGraphGraphicalNodeEditPolicy {
17
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/CompartmentVisualFacetsCanonicalEditPolicy.java (-45 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
14
import org.eclipse.gmf.runtime.notation.View;
15
import java.util.LinkedList;
16
import java.util.List;
17
18
/**
19
 * @generated
20
 */
21
public class CompartmentVisualFacetsCanonicalEditPolicy extends CanonicalEditPolicy {
22
23
	/**
24
	 * @generated
25
	 */
26
	protected List getSemanticChildrenList() {
27
		List result = new LinkedList();
28
		return result;
29
	}
30
31
	/**
32
	 * @generated
33
	 */
34
	protected boolean shouldDeleteView(View view) {
35
		return view.isSetElement() && view.getElement() != null && view.getElement().eIsProxy();
36
	}
37
38
	/**
39
	 * @generated
40
	 */
41
	protected String getDefaultFactoryHint() {
42
		return null;
43
	}
44
45
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/GMFGraphReferenceConnectionEditPolicy.java (-160 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
import org.eclipse.emf.transaction.TransactionalEditingDomain;
14
import org.eclipse.gef.EditPart;
15
import org.eclipse.gef.Request;
16
import org.eclipse.gef.commands.Command;
17
import org.eclipse.gef.commands.CompoundCommand;
18
import org.eclipse.gef.commands.UnexecutableCommand;
19
import org.eclipse.gef.editparts.AbstractConnectionEditPart;
20
import org.eclipse.gef.editpolicies.ConnectionEditPolicy;
21
import org.eclipse.gef.requests.GroupRequest;
22
import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
23
import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
24
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
25
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
26
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramUIMessages;
27
import org.eclipse.gmf.runtime.diagram.ui.preferences.IPreferenceConstants;
28
import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper;
29
import org.eclipse.gmf.runtime.diagram.ui.requests.GroupRequestViaKeyboard;
30
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
31
import org.eclipse.gmf.runtime.notation.View;
32
import org.eclipse.jface.dialogs.IDialogConstants;
33
import org.eclipse.jface.dialogs.MessageDialogWithToggle;
34
import org.eclipse.jface.preference.IPreferenceStore;
35
import org.eclipse.jface.util.Assert;
36
import org.eclipse.swt.widgets.Display;
37
38
/**
39
 * @generated
40
 */
41
public class GMFGraphReferenceConnectionEditPolicy extends ConnectionEditPolicy {
42
43
	/**
44
	 * @generated
45
	 */
46
	private static final String DELETE_FROM_DIAGRAM_DLG_TITLE = DiagramUIMessages.PromptingDeleteAction_DeleteFromDiagramDialog_Title;
47
48
	/**
49
	 * @generated
50
	 */
51
	private static final String DELETE_FROM_DIAGRAM_DLG_MESSAGE = DiagramUIMessages.PromptingDeleteAction_DeleteFromDiagramDialog_Message;
52
53
	/**
54
	 * @generated
55
	 */
56
	private static final String DELETE_FROM_MODEL_DLG_TOGGLE_LABEL = DiagramUIMessages.MessageDialogWithToggle_DoNotPromptAgainToggle_label;
57
58
	/**
59
	 * @generated
60
	 */
61
	protected final Command getDeleteCommand(GroupRequest deleteRequest) {
62
		boolean isDeleteFromKeyBoard = deleteRequest instanceof GroupRequestViaKeyboard;
63
		if (shouldDeleteSemantic()) {
64
			return createDeleteSemanticCommand(deleteRequest);
65
		} else {
66
			boolean proceedToDeleteView = true;
67
			if (isDeleteFromKeyBoard) {
68
				GroupRequestViaKeyboard groupRequestViaKeyboard = (GroupRequestViaKeyboard) deleteRequest;
69
				if (groupRequestViaKeyboard.isShowInformationDialog()) {
70
					proceedToDeleteView = showPrompt();
71
					groupRequestViaKeyboard.setShowInformationDialog(false);
72
					if (!(proceedToDeleteView))
73
						return UnexecutableCommand.INSTANCE;
74
				}
75
			}
76
			return createDeleteViewCommand(deleteRequest);
77
		}
78
	}
79
80
	/**
81
	 * @generated
82
	 */
83
	protected boolean shouldDeleteSemantic() {
84
		Assert.isTrue(getHost() instanceof AbstractConnectionEditPart);
85
		AbstractConnectionEditPart cep = (AbstractConnectionEditPart) getHost();
86
		boolean isCanonical = false;
87
		if (cep.getSource() != null)
88
			isCanonical = IsCanonical(cep.getSource());
89
		if (cep.getTarget() != null)
90
			return isCanonical ? isCanonical : IsCanonical(cep.getTarget());
91
		return isCanonical;
92
	}
93
94
	/**
95
	 * @generated
96
	 */
97
	private boolean IsCanonical(EditPart ep) {
98
		EditPart parent = ep.getParent();
99
		return parent instanceof GraphicalEditPart ? ((GraphicalEditPart) parent).isCanonical() : false;
100
	}
101
102
	/**
103
	 * @generated
104
	 */
105
	protected Command createDeleteViewCommand(GroupRequest deleteRequest) {
106
		TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()).getEditingDomain();
107
		return new ICommandProxy(new DeleteCommand(editingDomain, (View) getHost().getModel()));
108
	}
109
110
	/**
111
	 * @generated
112
	 */
113
	protected Command createDeleteSemanticCommand(GroupRequest deleteRequest) {
114
		TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()).getEditingDomain();
115
		EditCommandRequestWrapper semReq = new EditCommandRequestWrapper(new DestroyElementRequest(editingDomain, false), deleteRequest.getExtendedData());
116
		Command semanticCmd = getHost().getCommand(semReq);
117
		if (semanticCmd != null && semanticCmd.canExecute()) {
118
			CompoundCommand cc = new CompoundCommand();
119
			cc.add(semanticCmd);
120
			return cc;
121
		}
122
		return null;
123
	}
124
125
	/**
126
	 * @generated
127
	 */
128
	private boolean showPrompt() {
129
		boolean prompt = ((IPreferenceStore) ((IGraphicalEditPart) getHost()).getDiagramPreferencesHint().getPreferenceStore()).getBoolean(IPreferenceConstants.PREF_PROMPT_ON_DEL_FROM_DIAGRAM);
130
		if (prompt)
131
			if (showMessageDialog())
132
				return true;
133
			else
134
				return false;
135
		return true;
136
	}
137
138
	/**
139
	 * @generated
140
	 */
141
	private boolean showMessageDialog() {
142
		MessageDialogWithToggle dialog = MessageDialogWithToggle.openYesNoQuestion(Display.getCurrent().getActiveShell(), DELETE_FROM_DIAGRAM_DLG_TITLE, DELETE_FROM_DIAGRAM_DLG_MESSAGE,
143
				DELETE_FROM_MODEL_DLG_TOGGLE_LABEL, false, (IPreferenceStore) ((IGraphicalEditPart) getHost()).getDiagramPreferencesHint().getPreferenceStore(),
144
				IPreferenceConstants.PREF_PROMPT_ON_DEL_FROM_DIAGRAM);
145
		if (dialog.getReturnCode() == IDialogConstants.YES_ID)
146
			return true;
147
		else
148
			return false;
149
	}
150
151
	/**
152
	 * @generated
153
	 */
154
	public Command getCommand(Request request) {
155
		if (request instanceof GroupRequestViaKeyboard) {
156
			return getDeleteCommand((GroupRequest) request);
157
		}
158
		return super.getCommand(request);
159
	}
160
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/Ellipse2GraphicalNodeEditPolicy.java (-17 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
/**
14
 * @generated
15
 */
16
public class Ellipse2GraphicalNodeEditPolicy extends GMFGraphGraphicalNodeEditPolicy {
17
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/Ellipse2ItemSemanticEditPolicy.java (-160 / +49 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-36 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import org.eclipse.gef.commands.Command;
13
import java.util.ArrayList;
14
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
14
import java.util.Collection;
15
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
15
import java.util.Collections;
16
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
16
import java.util.Iterator;
17
import org.eclipse.emf.ecore.EObject;
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.gmf.runtime.notation.View;
20
import org.eclipse.emf.ecore.EClass;
21
17
18
import org.eclipse.emf.ecore.EObject;
19
import org.eclipse.gef.EditPart;
20
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.CompoundCommand;
22
import org.eclipse.gef.commands.UnexecutableCommand;
22
import org.eclipse.gef.commands.UnexecutableCommand;
23
24
import org.eclipse.gmf.gmfgraph.DiagramElement;
23
import org.eclipse.gmf.gmfgraph.DiagramElement;
24
import org.eclipse.gmf.gmfgraph.FigureHandle;
25
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
25
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
26
26
import org.eclipse.gmf.graphdef.editor.edit.commands.EllipseCreateCommand;
27
import org.eclipse.gmf.graphdef.editor.edit.commands.PolylineCreateCommand;
28
import org.eclipse.gmf.graphdef.editor.edit.commands.Rectangle2CreateCommand;
29
import org.eclipse.gmf.graphdef.editor.edit.commands.RoundedRectangleCreateCommand;
30
import org.eclipse.gmf.graphdef.editor.edit.parts.Ellipse2EditPart;
27
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
31
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
28
32
import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper;
29
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
33
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
30
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
34
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
31
32
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
35
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
36
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
37
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
33
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
38
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
39
import org.eclipse.gmf.runtime.notation.Edge;
40
import org.eclipse.gmf.runtime.notation.View;
34
41
35
/**
42
/**
36
 * @generated
43
 * @generated
Lines 45-69 Link Here
45
			if (req.getContainmentFeature() == null) {
52
			if (req.getContainmentFeature() == null) {
46
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
53
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
47
			}
54
			}
48
			return getMSLWrapper(new CreateRectangle_3002Command(req));
55
			return getMSLWrapper(new Rectangle2CreateCommand(req));
49
		}
56
		}
50
		if (GMFGraphElementTypes.Ellipse_3003 == req.getElementType()) {
57
		if (GMFGraphElementTypes.Ellipse_3003 == req.getElementType()) {
51
			if (req.getContainmentFeature() == null) {
58
			if (req.getContainmentFeature() == null) {
52
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
59
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
53
			}
60
			}
54
			return getMSLWrapper(new CreateEllipse_3003Command(req));
61
			return getMSLWrapper(new EllipseCreateCommand(req));
55
		}
62
		}
56
		if (GMFGraphElementTypes.RoundedRectangle_3004 == req.getElementType()) {
63
		if (GMFGraphElementTypes.RoundedRectangle_3004 == req.getElementType()) {
57
			if (req.getContainmentFeature() == null) {
64
			if (req.getContainmentFeature() == null) {
58
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
65
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
59
			}
66
			}
60
			return getMSLWrapper(new CreateRoundedRectangle_3004Command(req));
67
			return getMSLWrapper(new RoundedRectangleCreateCommand(req));
61
		}
68
		}
62
		if (GMFGraphElementTypes.Polyline_3005 == req.getElementType()) {
69
		if (GMFGraphElementTypes.Polyline_3005 == req.getElementType()) {
63
			if (req.getContainmentFeature() == null) {
70
			if (req.getContainmentFeature() == null) {
64
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
71
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
65
			}
72
			}
66
			return getMSLWrapper(new CreatePolyline_3005Command(req));
73
			return getMSLWrapper(new PolylineCreateCommand(req));
67
		}
74
		}
68
		return super.getCreateCommand(req);
75
		return super.getCreateCommand(req);
69
	}
76
	}
Lines 71-213 Link Here
71
	/**
78
	/**
72
	 * @generated
79
	 * @generated
73
	 */
80
	 */
74
	private static class CreateRectangle_3002Command extends CreateElementCommand {
75
76
		/**
77
		 * @generated
78
		 */
79
		public CreateRectangle_3002Command(CreateElementRequest req) {
80
			super(req);
81
		}
82
83
		/**
84
		 * @generated
85
		 */
86
		protected EClass getEClassToEdit() {
87
			return GMFGraphPackage.eINSTANCE.getEllipse();
88
		};
89
90
		/**
91
		 * @generated
92
		 */
93
		protected EObject getElementToEdit() {
94
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
95
			if (container instanceof View) {
96
				container = ((View) container).getElement();
97
			}
98
			return container;
99
		}
100
	}
101
102
	/**
103
	 * @generated
104
	 */
105
	private static class CreateEllipse_3003Command extends CreateElementCommand {
106
107
		/**
108
		 * @generated
109
		 */
110
		public CreateEllipse_3003Command(CreateElementRequest req) {
111
			super(req);
112
		}
113
114
		/**
115
		 * @generated
116
		 */
117
		protected EClass getEClassToEdit() {
118
			return GMFGraphPackage.eINSTANCE.getEllipse();
119
		};
120
121
		/**
122
		 * @generated
123
		 */
124
		protected EObject getElementToEdit() {
125
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
126
			if (container instanceof View) {
127
				container = ((View) container).getElement();
128
			}
129
			return container;
130
		}
131
	}
132
133
	/**
134
	 * @generated
135
	 */
136
	private static class CreateRoundedRectangle_3004Command extends CreateElementCommand {
137
138
		/**
139
		 * @generated
140
		 */
141
		public CreateRoundedRectangle_3004Command(CreateElementRequest req) {
142
			super(req);
143
		}
144
145
		/**
146
		 * @generated
147
		 */
148
		protected EClass getEClassToEdit() {
149
			return GMFGraphPackage.eINSTANCE.getEllipse();
150
		};
151
152
		/**
153
		 * @generated
154
		 */
155
		protected EObject getElementToEdit() {
156
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
157
			if (container instanceof View) {
158
				container = ((View) container).getElement();
159
			}
160
			return container;
161
		}
162
	}
163
164
	/**
165
	 * @generated
166
	 */
167
	private static class CreatePolyline_3005Command extends CreateElementCommand {
168
169
		/**
170
		 * @generated
171
		 */
172
		public CreatePolyline_3005Command(CreateElementRequest req) {
173
			super(req);
174
		}
175
176
		/**
177
		 * @generated
178
		 */
179
		protected EClass getEClassToEdit() {
180
			return GMFGraphPackage.eINSTANCE.getEllipse();
181
		};
182
183
		/**
184
		 * @generated
185
		 */
186
		protected EObject getElementToEdit() {
187
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
188
			if (container instanceof View) {
189
				container = ((View) container).getElement();
190
			}
191
			return container;
192
		}
193
	}
194
195
	/**
196
	 * @generated
197
	 */
198
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
81
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
199
		return getMSLWrapper(new DestroyElementCommand(req) {
82
		CompoundCommand cc = new CompoundCommand();
200
83
		Collection allEdges = new ArrayList();
201
			protected EObject getElementToDestroy() {
84
		View view = (View) getHost().getModel();
202
				View view = (View) getHost().getModel();
85
		allEdges.addAll(view.getSourceEdges());
203
				EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
86
		allEdges.addAll(view.getTargetEdges());
204
				if (annotation != null) {
87
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
205
					return view;
88
			Edge nextEdge = (Edge) it.next();
206
				}
89
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
207
				return super.getElementToDestroy();
90
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((Ellipse2EditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
208
			}
91
					Collections.EMPTY_MAP);
209
92
			cc.add(nextEditPart.getCommand(editCommandRequest));
210
		});
93
		}
94
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
95
		return cc;
211
	}
96
	}
212
97
213
	/**
98
	/**
Lines 215-221 Link Here
215
	 */
100
	 */
216
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
101
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
217
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
102
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
218
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElement_Figure4001Command(req);
103
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElementFigure_4001Command(req);
219
		}
104
		}
220
		return super.getCreateRelationshipCommand(req);
105
		return super.getCreateRelationshipCommand(req);
221
	}
106
	}
Lines 223-237 Link Here
223
	/**
108
	/**
224
	 * @generated
109
	 * @generated
225
	 */
110
	 */
226
	protected Command getCreateCompleteIncomingDiagramElement_Figure4001Command(CreateRelationshipRequest req) {
111
	protected Command getCreateCompleteIncomingDiagramElementFigure_4001Command(CreateRelationshipRequest req) {
227
		if (!(req.getSource() instanceof DiagramElement)) {
112
		EObject sourceEObject = req.getSource();
113
		EObject targetEObject = req.getTarget();
114
		if (false == sourceEObject instanceof DiagramElement || false == targetEObject instanceof FigureHandle) {
228
			return UnexecutableCommand.INSTANCE;
115
			return UnexecutableCommand.INSTANCE;
229
		}
116
		}
230
		DiagramElement element = (DiagramElement) req.getSource();
117
		DiagramElement source = (DiagramElement) sourceEObject;
231
		if (element.getFigure() != null) {
118
		FigureHandle target = (FigureHandle) targetEObject;
119
		if (!GMFGraphBaseItemSemanticEditPolicy.LinkConstraints.canCreateDiagramElementFigure_4001(source, target)) {
232
			return UnexecutableCommand.INSTANCE;
120
			return UnexecutableCommand.INSTANCE;
233
		}
121
		}
234
		SetRequest setReq = new SetRequest(req.getSource(), GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), req.getTarget());
122
		SetRequest setReq = new SetRequest(sourceEObject, GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), target);
235
		return getMSLWrapper(new SetValueCommand(setReq));
123
		return getMSLWrapper(new SetValueCommand(setReq));
236
	}
124
	}
125
237
}
126
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/PolylineItemSemanticEditPolicy.java (-29 / +41 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-32 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import org.eclipse.gef.commands.Command;
13
import java.util.ArrayList;
14
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
14
import java.util.Collection;
15
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
15
import java.util.Collections;
16
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
16
import java.util.Iterator;
17
17
import org.eclipse.emf.ecore.EObject;
18
import org.eclipse.emf.ecore.EObject;
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.gef.EditPart;
19
import org.eclipse.gmf.runtime.notation.View;
20
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.CompoundCommand;
20
import org.eclipse.gef.commands.UnexecutableCommand;
22
import org.eclipse.gef.commands.UnexecutableCommand;
21
22
import org.eclipse.gmf.gmfgraph.DiagramElement;
23
import org.eclipse.gmf.gmfgraph.DiagramElement;
24
import org.eclipse.gmf.gmfgraph.FigureHandle;
23
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
25
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
24
26
import org.eclipse.gmf.graphdef.editor.edit.parts.PolylineEditPart;
25
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
27
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
26
28
import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper;
29
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
27
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
30
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
28
31
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
32
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
29
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
33
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
34
import org.eclipse.gmf.runtime.notation.Edge;
35
import org.eclipse.gmf.runtime.notation.View;
30
36
31
/**
37
/**
32
 * @generated
38
 * @generated
Lines 37-54 Link Here
37
	 * @generated
43
	 * @generated
38
	 */
44
	 */
39
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
45
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
40
		return getMSLWrapper(new DestroyElementCommand(req) {
46
		CompoundCommand cc = new CompoundCommand();
41
47
		Collection allEdges = new ArrayList();
42
			protected EObject getElementToDestroy() {
48
		View view = (View) getHost().getModel();
43
				View view = (View) getHost().getModel();
49
		allEdges.addAll(view.getSourceEdges());
44
				EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
50
		allEdges.addAll(view.getTargetEdges());
45
				if (annotation != null) {
51
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
46
					return view;
52
			Edge nextEdge = (Edge) it.next();
47
				}
53
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
48
				return super.getElementToDestroy();
54
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((PolylineEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
49
			}
55
					Collections.EMPTY_MAP);
50
56
			cc.add(nextEditPart.getCommand(editCommandRequest));
51
		});
57
		}
58
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
59
		return cc;
52
	}
60
	}
53
61
54
	/**
62
	/**
Lines 56-62 Link Here
56
	 */
64
	 */
57
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
65
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
58
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
66
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
59
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElement_Figure4001Command(req);
67
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElementFigure_4001Command(req);
60
		}
68
		}
61
		return super.getCreateRelationshipCommand(req);
69
		return super.getCreateRelationshipCommand(req);
62
	}
70
	}
Lines 64-78 Link Here
64
	/**
72
	/**
65
	 * @generated
73
	 * @generated
66
	 */
74
	 */
67
	protected Command getCreateCompleteIncomingDiagramElement_Figure4001Command(CreateRelationshipRequest req) {
75
	protected Command getCreateCompleteIncomingDiagramElementFigure_4001Command(CreateRelationshipRequest req) {
68
		if (!(req.getSource() instanceof DiagramElement)) {
76
		EObject sourceEObject = req.getSource();
77
		EObject targetEObject = req.getTarget();
78
		if (false == sourceEObject instanceof DiagramElement || false == targetEObject instanceof FigureHandle) {
69
			return UnexecutableCommand.INSTANCE;
79
			return UnexecutableCommand.INSTANCE;
70
		}
80
		}
71
		DiagramElement element = (DiagramElement) req.getSource();
81
		DiagramElement source = (DiagramElement) sourceEObject;
72
		if (element.getFigure() != null) {
82
		FigureHandle target = (FigureHandle) targetEObject;
83
		if (!GMFGraphBaseItemSemanticEditPolicy.LinkConstraints.canCreateDiagramElementFigure_4001(source, target)) {
73
			return UnexecutableCommand.INSTANCE;
84
			return UnexecutableCommand.INSTANCE;
74
		}
85
		}
75
		SetRequest setReq = new SetRequest(req.getSource(), GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), req.getTarget());
86
		SetRequest setReq = new SetRequest(sourceEObject, GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), target);
76
		return getMSLWrapper(new SetValueCommand(setReq));
87
		return getMSLWrapper(new SetValueCommand(setReq));
77
	}
88
	}
89
78
}
90
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/RoundedRectangle2ItemSemanticEditPolicy.java (-160 / +49 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-36 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import org.eclipse.gef.commands.Command;
13
import java.util.ArrayList;
14
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
14
import java.util.Collection;
15
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
15
import java.util.Collections;
16
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
16
import java.util.Iterator;
17
import org.eclipse.emf.ecore.EObject;
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.gmf.runtime.notation.View;
20
import org.eclipse.emf.ecore.EClass;
21
17
18
import org.eclipse.emf.ecore.EObject;
19
import org.eclipse.gef.EditPart;
20
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.CompoundCommand;
22
import org.eclipse.gef.commands.UnexecutableCommand;
22
import org.eclipse.gef.commands.UnexecutableCommand;
23
24
import org.eclipse.gmf.gmfgraph.DiagramElement;
23
import org.eclipse.gmf.gmfgraph.DiagramElement;
24
import org.eclipse.gmf.gmfgraph.FigureHandle;
25
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
25
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
26
26
import org.eclipse.gmf.graphdef.editor.edit.commands.EllipseCreateCommand;
27
import org.eclipse.gmf.graphdef.editor.edit.commands.PolylineCreateCommand;
28
import org.eclipse.gmf.graphdef.editor.edit.commands.Rectangle2CreateCommand;
29
import org.eclipse.gmf.graphdef.editor.edit.commands.RoundedRectangleCreateCommand;
30
import org.eclipse.gmf.graphdef.editor.edit.parts.RoundedRectangle2EditPart;
27
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
31
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
28
32
import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper;
29
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
33
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
30
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
34
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
31
32
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
35
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
36
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
37
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
33
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
38
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
39
import org.eclipse.gmf.runtime.notation.Edge;
40
import org.eclipse.gmf.runtime.notation.View;
34
41
35
/**
42
/**
36
 * @generated
43
 * @generated
Lines 45-69 Link Here
45
			if (req.getContainmentFeature() == null) {
52
			if (req.getContainmentFeature() == null) {
46
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
53
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
47
			}
54
			}
48
			return getMSLWrapper(new CreateRectangle_3002Command(req));
55
			return getMSLWrapper(new Rectangle2CreateCommand(req));
49
		}
56
		}
50
		if (GMFGraphElementTypes.Ellipse_3003 == req.getElementType()) {
57
		if (GMFGraphElementTypes.Ellipse_3003 == req.getElementType()) {
51
			if (req.getContainmentFeature() == null) {
58
			if (req.getContainmentFeature() == null) {
52
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
59
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
53
			}
60
			}
54
			return getMSLWrapper(new CreateEllipse_3003Command(req));
61
			return getMSLWrapper(new EllipseCreateCommand(req));
55
		}
62
		}
56
		if (GMFGraphElementTypes.RoundedRectangle_3004 == req.getElementType()) {
63
		if (GMFGraphElementTypes.RoundedRectangle_3004 == req.getElementType()) {
57
			if (req.getContainmentFeature() == null) {
64
			if (req.getContainmentFeature() == null) {
58
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
65
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
59
			}
66
			}
60
			return getMSLWrapper(new CreateRoundedRectangle_3004Command(req));
67
			return getMSLWrapper(new RoundedRectangleCreateCommand(req));
61
		}
68
		}
62
		if (GMFGraphElementTypes.Polyline_3005 == req.getElementType()) {
69
		if (GMFGraphElementTypes.Polyline_3005 == req.getElementType()) {
63
			if (req.getContainmentFeature() == null) {
70
			if (req.getContainmentFeature() == null) {
64
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
71
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
65
			}
72
			}
66
			return getMSLWrapper(new CreatePolyline_3005Command(req));
73
			return getMSLWrapper(new PolylineCreateCommand(req));
67
		}
74
		}
68
		return super.getCreateCommand(req);
75
		return super.getCreateCommand(req);
69
	}
76
	}
Lines 71-213 Link Here
71
	/**
78
	/**
72
	 * @generated
79
	 * @generated
73
	 */
80
	 */
74
	private static class CreateRectangle_3002Command extends CreateElementCommand {
75
76
		/**
77
		 * @generated
78
		 */
79
		public CreateRectangle_3002Command(CreateElementRequest req) {
80
			super(req);
81
		}
82
83
		/**
84
		 * @generated
85
		 */
86
		protected EClass getEClassToEdit() {
87
			return GMFGraphPackage.eINSTANCE.getRoundedRectangle();
88
		};
89
90
		/**
91
		 * @generated
92
		 */
93
		protected EObject getElementToEdit() {
94
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
95
			if (container instanceof View) {
96
				container = ((View) container).getElement();
97
			}
98
			return container;
99
		}
100
	}
101
102
	/**
103
	 * @generated
104
	 */
105
	private static class CreateEllipse_3003Command extends CreateElementCommand {
106
107
		/**
108
		 * @generated
109
		 */
110
		public CreateEllipse_3003Command(CreateElementRequest req) {
111
			super(req);
112
		}
113
114
		/**
115
		 * @generated
116
		 */
117
		protected EClass getEClassToEdit() {
118
			return GMFGraphPackage.eINSTANCE.getRoundedRectangle();
119
		};
120
121
		/**
122
		 * @generated
123
		 */
124
		protected EObject getElementToEdit() {
125
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
126
			if (container instanceof View) {
127
				container = ((View) container).getElement();
128
			}
129
			return container;
130
		}
131
	}
132
133
	/**
134
	 * @generated
135
	 */
136
	private static class CreateRoundedRectangle_3004Command extends CreateElementCommand {
137
138
		/**
139
		 * @generated
140
		 */
141
		public CreateRoundedRectangle_3004Command(CreateElementRequest req) {
142
			super(req);
143
		}
144
145
		/**
146
		 * @generated
147
		 */
148
		protected EClass getEClassToEdit() {
149
			return GMFGraphPackage.eINSTANCE.getRoundedRectangle();
150
		};
151
152
		/**
153
		 * @generated
154
		 */
155
		protected EObject getElementToEdit() {
156
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
157
			if (container instanceof View) {
158
				container = ((View) container).getElement();
159
			}
160
			return container;
161
		}
162
	}
163
164
	/**
165
	 * @generated
166
	 */
167
	private static class CreatePolyline_3005Command extends CreateElementCommand {
168
169
		/**
170
		 * @generated
171
		 */
172
		public CreatePolyline_3005Command(CreateElementRequest req) {
173
			super(req);
174
		}
175
176
		/**
177
		 * @generated
178
		 */
179
		protected EClass getEClassToEdit() {
180
			return GMFGraphPackage.eINSTANCE.getRoundedRectangle();
181
		};
182
183
		/**
184
		 * @generated
185
		 */
186
		protected EObject getElementToEdit() {
187
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
188
			if (container instanceof View) {
189
				container = ((View) container).getElement();
190
			}
191
			return container;
192
		}
193
	}
194
195
	/**
196
	 * @generated
197
	 */
198
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
81
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
199
		return getMSLWrapper(new DestroyElementCommand(req) {
82
		CompoundCommand cc = new CompoundCommand();
200
83
		Collection allEdges = new ArrayList();
201
			protected EObject getElementToDestroy() {
84
		View view = (View) getHost().getModel();
202
				View view = (View) getHost().getModel();
85
		allEdges.addAll(view.getSourceEdges());
203
				EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
86
		allEdges.addAll(view.getTargetEdges());
204
				if (annotation != null) {
87
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
205
					return view;
88
			Edge nextEdge = (Edge) it.next();
206
				}
89
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
207
				return super.getElementToDestroy();
90
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((RoundedRectangle2EditPart) getHost()).getEditingDomain(), req
208
			}
91
					.isConfirmationRequired()), Collections.EMPTY_MAP);
209
92
			cc.add(nextEditPart.getCommand(editCommandRequest));
210
		});
93
		}
94
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
95
		return cc;
211
	}
96
	}
212
97
213
	/**
98
	/**
Lines 215-221 Link Here
215
	 */
100
	 */
216
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
101
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
217
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
102
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
218
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElement_Figure4001Command(req);
103
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElementFigure_4001Command(req);
219
		}
104
		}
220
		return super.getCreateRelationshipCommand(req);
105
		return super.getCreateRelationshipCommand(req);
221
	}
106
	}
Lines 223-237 Link Here
223
	/**
108
	/**
224
	 * @generated
109
	 * @generated
225
	 */
110
	 */
226
	protected Command getCreateCompleteIncomingDiagramElement_Figure4001Command(CreateRelationshipRequest req) {
111
	protected Command getCreateCompleteIncomingDiagramElementFigure_4001Command(CreateRelationshipRequest req) {
227
		if (!(req.getSource() instanceof DiagramElement)) {
112
		EObject sourceEObject = req.getSource();
113
		EObject targetEObject = req.getTarget();
114
		if (false == sourceEObject instanceof DiagramElement || false == targetEObject instanceof FigureHandle) {
228
			return UnexecutableCommand.INSTANCE;
115
			return UnexecutableCommand.INSTANCE;
229
		}
116
		}
230
		DiagramElement element = (DiagramElement) req.getSource();
117
		DiagramElement source = (DiagramElement) sourceEObject;
231
		if (element.getFigure() != null) {
118
		FigureHandle target = (FigureHandle) targetEObject;
119
		if (!GMFGraphBaseItemSemanticEditPolicy.LinkConstraints.canCreateDiagramElementFigure_4001(source, target)) {
232
			return UnexecutableCommand.INSTANCE;
120
			return UnexecutableCommand.INSTANCE;
233
		}
121
		}
234
		SetRequest setReq = new SetRequest(req.getSource(), GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), req.getTarget());
122
		SetRequest setReq = new SetRequest(sourceEObject, GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), target);
235
		return getMSLWrapper(new SetValueCommand(setReq));
123
		return getMSLWrapper(new SetValueCommand(setReq));
236
	}
124
	}
125
237
}
126
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/RectangleItemSemanticEditPolicy.java (-160 / +49 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-36 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import org.eclipse.gef.commands.Command;
13
import java.util.ArrayList;
14
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
14
import java.util.Collection;
15
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
15
import java.util.Collections;
16
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
16
import java.util.Iterator;
17
import org.eclipse.emf.ecore.EObject;
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.gmf.runtime.notation.View;
20
import org.eclipse.emf.ecore.EClass;
21
17
18
import org.eclipse.emf.ecore.EObject;
19
import org.eclipse.gef.EditPart;
20
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.CompoundCommand;
22
import org.eclipse.gef.commands.UnexecutableCommand;
22
import org.eclipse.gef.commands.UnexecutableCommand;
23
24
import org.eclipse.gmf.gmfgraph.DiagramElement;
23
import org.eclipse.gmf.gmfgraph.DiagramElement;
24
import org.eclipse.gmf.gmfgraph.FigureHandle;
25
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
25
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
26
26
import org.eclipse.gmf.graphdef.editor.edit.commands.EllipseCreateCommand;
27
import org.eclipse.gmf.graphdef.editor.edit.commands.PolylineCreateCommand;
28
import org.eclipse.gmf.graphdef.editor.edit.commands.Rectangle2CreateCommand;
29
import org.eclipse.gmf.graphdef.editor.edit.commands.RoundedRectangleCreateCommand;
30
import org.eclipse.gmf.graphdef.editor.edit.parts.RectangleEditPart;
27
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
31
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
28
32
import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper;
29
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
33
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
30
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
34
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
31
32
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
35
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
36
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
37
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
33
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
38
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
39
import org.eclipse.gmf.runtime.notation.Edge;
40
import org.eclipse.gmf.runtime.notation.View;
34
41
35
/**
42
/**
36
 * @generated
43
 * @generated
Lines 45-69 Link Here
45
			if (req.getContainmentFeature() == null) {
52
			if (req.getContainmentFeature() == null) {
46
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
53
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
47
			}
54
			}
48
			return getMSLWrapper(new CreateRectangle_3002Command(req));
55
			return getMSLWrapper(new Rectangle2CreateCommand(req));
49
		}
56
		}
50
		if (GMFGraphElementTypes.Ellipse_3003 == req.getElementType()) {
57
		if (GMFGraphElementTypes.Ellipse_3003 == req.getElementType()) {
51
			if (req.getContainmentFeature() == null) {
58
			if (req.getContainmentFeature() == null) {
52
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
59
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
53
			}
60
			}
54
			return getMSLWrapper(new CreateEllipse_3003Command(req));
61
			return getMSLWrapper(new EllipseCreateCommand(req));
55
		}
62
		}
56
		if (GMFGraphElementTypes.RoundedRectangle_3004 == req.getElementType()) {
63
		if (GMFGraphElementTypes.RoundedRectangle_3004 == req.getElementType()) {
57
			if (req.getContainmentFeature() == null) {
64
			if (req.getContainmentFeature() == null) {
58
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
65
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
59
			}
66
			}
60
			return getMSLWrapper(new CreateRoundedRectangle_3004Command(req));
67
			return getMSLWrapper(new RoundedRectangleCreateCommand(req));
61
		}
68
		}
62
		if (GMFGraphElementTypes.Polyline_3005 == req.getElementType()) {
69
		if (GMFGraphElementTypes.Polyline_3005 == req.getElementType()) {
63
			if (req.getContainmentFeature() == null) {
70
			if (req.getContainmentFeature() == null) {
64
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
71
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
65
			}
72
			}
66
			return getMSLWrapper(new CreatePolyline_3005Command(req));
73
			return getMSLWrapper(new PolylineCreateCommand(req));
67
		}
74
		}
68
		return super.getCreateCommand(req);
75
		return super.getCreateCommand(req);
69
	}
76
	}
Lines 71-213 Link Here
71
	/**
78
	/**
72
	 * @generated
79
	 * @generated
73
	 */
80
	 */
74
	private static class CreateRectangle_3002Command extends CreateElementCommand {
75
76
		/**
77
		 * @generated
78
		 */
79
		public CreateRectangle_3002Command(CreateElementRequest req) {
80
			super(req);
81
		}
82
83
		/**
84
		 * @generated
85
		 */
86
		protected EClass getEClassToEdit() {
87
			return GMFGraphPackage.eINSTANCE.getRectangle();
88
		};
89
90
		/**
91
		 * @generated
92
		 */
93
		protected EObject getElementToEdit() {
94
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
95
			if (container instanceof View) {
96
				container = ((View) container).getElement();
97
			}
98
			return container;
99
		}
100
	}
101
102
	/**
103
	 * @generated
104
	 */
105
	private static class CreateEllipse_3003Command extends CreateElementCommand {
106
107
		/**
108
		 * @generated
109
		 */
110
		public CreateEllipse_3003Command(CreateElementRequest req) {
111
			super(req);
112
		}
113
114
		/**
115
		 * @generated
116
		 */
117
		protected EClass getEClassToEdit() {
118
			return GMFGraphPackage.eINSTANCE.getRectangle();
119
		};
120
121
		/**
122
		 * @generated
123
		 */
124
		protected EObject getElementToEdit() {
125
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
126
			if (container instanceof View) {
127
				container = ((View) container).getElement();
128
			}
129
			return container;
130
		}
131
	}
132
133
	/**
134
	 * @generated
135
	 */
136
	private static class CreateRoundedRectangle_3004Command extends CreateElementCommand {
137
138
		/**
139
		 * @generated
140
		 */
141
		public CreateRoundedRectangle_3004Command(CreateElementRequest req) {
142
			super(req);
143
		}
144
145
		/**
146
		 * @generated
147
		 */
148
		protected EClass getEClassToEdit() {
149
			return GMFGraphPackage.eINSTANCE.getRectangle();
150
		};
151
152
		/**
153
		 * @generated
154
		 */
155
		protected EObject getElementToEdit() {
156
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
157
			if (container instanceof View) {
158
				container = ((View) container).getElement();
159
			}
160
			return container;
161
		}
162
	}
163
164
	/**
165
	 * @generated
166
	 */
167
	private static class CreatePolyline_3005Command extends CreateElementCommand {
168
169
		/**
170
		 * @generated
171
		 */
172
		public CreatePolyline_3005Command(CreateElementRequest req) {
173
			super(req);
174
		}
175
176
		/**
177
		 * @generated
178
		 */
179
		protected EClass getEClassToEdit() {
180
			return GMFGraphPackage.eINSTANCE.getRectangle();
181
		};
182
183
		/**
184
		 * @generated
185
		 */
186
		protected EObject getElementToEdit() {
187
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
188
			if (container instanceof View) {
189
				container = ((View) container).getElement();
190
			}
191
			return container;
192
		}
193
	}
194
195
	/**
196
	 * @generated
197
	 */
198
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
81
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
199
		return getMSLWrapper(new DestroyElementCommand(req) {
82
		CompoundCommand cc = new CompoundCommand();
200
83
		Collection allEdges = new ArrayList();
201
			protected EObject getElementToDestroy() {
84
		View view = (View) getHost().getModel();
202
				View view = (View) getHost().getModel();
85
		allEdges.addAll(view.getSourceEdges());
203
				EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
86
		allEdges.addAll(view.getTargetEdges());
204
				if (annotation != null) {
87
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
205
					return view;
88
			Edge nextEdge = (Edge) it.next();
206
				}
89
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
207
				return super.getElementToDestroy();
90
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((RectangleEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
208
			}
91
					Collections.EMPTY_MAP);
209
92
			cc.add(nextEditPart.getCommand(editCommandRequest));
210
		});
93
		}
94
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
95
		return cc;
211
	}
96
	}
212
97
213
	/**
98
	/**
Lines 215-221 Link Here
215
	 */
100
	 */
216
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
101
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
217
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
102
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
218
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElement_Figure4001Command(req);
103
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElementFigure_4001Command(req);
219
		}
104
		}
220
		return super.getCreateRelationshipCommand(req);
105
		return super.getCreateRelationshipCommand(req);
221
	}
106
	}
Lines 223-237 Link Here
223
	/**
108
	/**
224
	 * @generated
109
	 * @generated
225
	 */
110
	 */
226
	protected Command getCreateCompleteIncomingDiagramElement_Figure4001Command(CreateRelationshipRequest req) {
111
	protected Command getCreateCompleteIncomingDiagramElementFigure_4001Command(CreateRelationshipRequest req) {
227
		if (!(req.getSource() instanceof DiagramElement)) {
112
		EObject sourceEObject = req.getSource();
113
		EObject targetEObject = req.getTarget();
114
		if (false == sourceEObject instanceof DiagramElement || false == targetEObject instanceof FigureHandle) {
228
			return UnexecutableCommand.INSTANCE;
115
			return UnexecutableCommand.INSTANCE;
229
		}
116
		}
230
		DiagramElement element = (DiagramElement) req.getSource();
117
		DiagramElement source = (DiagramElement) sourceEObject;
231
		if (element.getFigure() != null) {
118
		FigureHandle target = (FigureHandle) targetEObject;
119
		if (!GMFGraphBaseItemSemanticEditPolicy.LinkConstraints.canCreateDiagramElementFigure_4001(source, target)) {
232
			return UnexecutableCommand.INSTANCE;
120
			return UnexecutableCommand.INSTANCE;
233
		}
121
		}
234
		SetRequest setReq = new SetRequest(req.getSource(), GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), req.getTarget());
122
		SetRequest setReq = new SetRequest(sourceEObject, GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), target);
235
		return getMSLWrapper(new SetValueCommand(setReq));
123
		return getMSLWrapper(new SetValueCommand(setReq));
236
	}
124
	}
125
237
}
126
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/RoundedRectangleItemSemanticEditPolicy.java (-160 / +49 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-36 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import org.eclipse.gef.commands.Command;
13
import java.util.ArrayList;
14
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
14
import java.util.Collection;
15
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
15
import java.util.Collections;
16
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
16
import java.util.Iterator;
17
import org.eclipse.emf.ecore.EObject;
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.gmf.runtime.notation.View;
20
import org.eclipse.emf.ecore.EClass;
21
17
18
import org.eclipse.emf.ecore.EObject;
19
import org.eclipse.gef.EditPart;
20
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.CompoundCommand;
22
import org.eclipse.gef.commands.UnexecutableCommand;
22
import org.eclipse.gef.commands.UnexecutableCommand;
23
24
import org.eclipse.gmf.gmfgraph.DiagramElement;
23
import org.eclipse.gmf.gmfgraph.DiagramElement;
24
import org.eclipse.gmf.gmfgraph.FigureHandle;
25
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
25
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
26
26
import org.eclipse.gmf.graphdef.editor.edit.commands.EllipseCreateCommand;
27
import org.eclipse.gmf.graphdef.editor.edit.commands.PolylineCreateCommand;
28
import org.eclipse.gmf.graphdef.editor.edit.commands.Rectangle2CreateCommand;
29
import org.eclipse.gmf.graphdef.editor.edit.commands.RoundedRectangleCreateCommand;
30
import org.eclipse.gmf.graphdef.editor.edit.parts.RoundedRectangleEditPart;
27
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
31
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
28
32
import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper;
29
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
33
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
30
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
34
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
31
32
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
35
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
36
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
37
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
33
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
38
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
39
import org.eclipse.gmf.runtime.notation.Edge;
40
import org.eclipse.gmf.runtime.notation.View;
34
41
35
/**
42
/**
36
 * @generated
43
 * @generated
Lines 45-69 Link Here
45
			if (req.getContainmentFeature() == null) {
52
			if (req.getContainmentFeature() == null) {
46
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
53
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
47
			}
54
			}
48
			return getMSLWrapper(new CreateRectangle_3002Command(req));
55
			return getMSLWrapper(new Rectangle2CreateCommand(req));
49
		}
56
		}
50
		if (GMFGraphElementTypes.Ellipse_3003 == req.getElementType()) {
57
		if (GMFGraphElementTypes.Ellipse_3003 == req.getElementType()) {
51
			if (req.getContainmentFeature() == null) {
58
			if (req.getContainmentFeature() == null) {
52
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
59
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
53
			}
60
			}
54
			return getMSLWrapper(new CreateEllipse_3003Command(req));
61
			return getMSLWrapper(new EllipseCreateCommand(req));
55
		}
62
		}
56
		if (GMFGraphElementTypes.RoundedRectangle_3004 == req.getElementType()) {
63
		if (GMFGraphElementTypes.RoundedRectangle_3004 == req.getElementType()) {
57
			if (req.getContainmentFeature() == null) {
64
			if (req.getContainmentFeature() == null) {
58
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
65
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
59
			}
66
			}
60
			return getMSLWrapper(new CreateRoundedRectangle_3004Command(req));
67
			return getMSLWrapper(new RoundedRectangleCreateCommand(req));
61
		}
68
		}
62
		if (GMFGraphElementTypes.Polyline_3005 == req.getElementType()) {
69
		if (GMFGraphElementTypes.Polyline_3005 == req.getElementType()) {
63
			if (req.getContainmentFeature() == null) {
70
			if (req.getContainmentFeature() == null) {
64
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
71
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
65
			}
72
			}
66
			return getMSLWrapper(new CreatePolyline_3005Command(req));
73
			return getMSLWrapper(new PolylineCreateCommand(req));
67
		}
74
		}
68
		return super.getCreateCommand(req);
75
		return super.getCreateCommand(req);
69
	}
76
	}
Lines 71-213 Link Here
71
	/**
78
	/**
72
	 * @generated
79
	 * @generated
73
	 */
80
	 */
74
	private static class CreateRectangle_3002Command extends CreateElementCommand {
75
76
		/**
77
		 * @generated
78
		 */
79
		public CreateRectangle_3002Command(CreateElementRequest req) {
80
			super(req);
81
		}
82
83
		/**
84
		 * @generated
85
		 */
86
		protected EClass getEClassToEdit() {
87
			return GMFGraphPackage.eINSTANCE.getRoundedRectangle();
88
		};
89
90
		/**
91
		 * @generated
92
		 */
93
		protected EObject getElementToEdit() {
94
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
95
			if (container instanceof View) {
96
				container = ((View) container).getElement();
97
			}
98
			return container;
99
		}
100
	}
101
102
	/**
103
	 * @generated
104
	 */
105
	private static class CreateEllipse_3003Command extends CreateElementCommand {
106
107
		/**
108
		 * @generated
109
		 */
110
		public CreateEllipse_3003Command(CreateElementRequest req) {
111
			super(req);
112
		}
113
114
		/**
115
		 * @generated
116
		 */
117
		protected EClass getEClassToEdit() {
118
			return GMFGraphPackage.eINSTANCE.getRoundedRectangle();
119
		};
120
121
		/**
122
		 * @generated
123
		 */
124
		protected EObject getElementToEdit() {
125
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
126
			if (container instanceof View) {
127
				container = ((View) container).getElement();
128
			}
129
			return container;
130
		}
131
	}
132
133
	/**
134
	 * @generated
135
	 */
136
	private static class CreateRoundedRectangle_3004Command extends CreateElementCommand {
137
138
		/**
139
		 * @generated
140
		 */
141
		public CreateRoundedRectangle_3004Command(CreateElementRequest req) {
142
			super(req);
143
		}
144
145
		/**
146
		 * @generated
147
		 */
148
		protected EClass getEClassToEdit() {
149
			return GMFGraphPackage.eINSTANCE.getRoundedRectangle();
150
		};
151
152
		/**
153
		 * @generated
154
		 */
155
		protected EObject getElementToEdit() {
156
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
157
			if (container instanceof View) {
158
				container = ((View) container).getElement();
159
			}
160
			return container;
161
		}
162
	}
163
164
	/**
165
	 * @generated
166
	 */
167
	private static class CreatePolyline_3005Command extends CreateElementCommand {
168
169
		/**
170
		 * @generated
171
		 */
172
		public CreatePolyline_3005Command(CreateElementRequest req) {
173
			super(req);
174
		}
175
176
		/**
177
		 * @generated
178
		 */
179
		protected EClass getEClassToEdit() {
180
			return GMFGraphPackage.eINSTANCE.getRoundedRectangle();
181
		};
182
183
		/**
184
		 * @generated
185
		 */
186
		protected EObject getElementToEdit() {
187
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
188
			if (container instanceof View) {
189
				container = ((View) container).getElement();
190
			}
191
			return container;
192
		}
193
	}
194
195
	/**
196
	 * @generated
197
	 */
198
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
81
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
199
		return getMSLWrapper(new DestroyElementCommand(req) {
82
		CompoundCommand cc = new CompoundCommand();
200
83
		Collection allEdges = new ArrayList();
201
			protected EObject getElementToDestroy() {
84
		View view = (View) getHost().getModel();
202
				View view = (View) getHost().getModel();
85
		allEdges.addAll(view.getSourceEdges());
203
				EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
86
		allEdges.addAll(view.getTargetEdges());
204
				if (annotation != null) {
87
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
205
					return view;
88
			Edge nextEdge = (Edge) it.next();
206
				}
89
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
207
				return super.getElementToDestroy();
90
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((RoundedRectangleEditPart) getHost()).getEditingDomain(), req
208
			}
91
					.isConfirmationRequired()), Collections.EMPTY_MAP);
209
92
			cc.add(nextEditPart.getCommand(editCommandRequest));
210
		});
93
		}
94
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
95
		return cc;
211
	}
96
	}
212
97
213
	/**
98
	/**
Lines 215-221 Link Here
215
	 */
100
	 */
216
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
101
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
217
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
102
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
218
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElement_Figure4001Command(req);
103
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElementFigure_4001Command(req);
219
		}
104
		}
220
		return super.getCreateRelationshipCommand(req);
105
		return super.getCreateRelationshipCommand(req);
221
	}
106
	}
Lines 223-237 Link Here
223
	/**
108
	/**
224
	 * @generated
109
	 * @generated
225
	 */
110
	 */
226
	protected Command getCreateCompleteIncomingDiagramElement_Figure4001Command(CreateRelationshipRequest req) {
111
	protected Command getCreateCompleteIncomingDiagramElementFigure_4001Command(CreateRelationshipRequest req) {
227
		if (!(req.getSource() instanceof DiagramElement)) {
112
		EObject sourceEObject = req.getSource();
113
		EObject targetEObject = req.getTarget();
114
		if (false == sourceEObject instanceof DiagramElement || false == targetEObject instanceof FigureHandle) {
228
			return UnexecutableCommand.INSTANCE;
115
			return UnexecutableCommand.INSTANCE;
229
		}
116
		}
230
		DiagramElement element = (DiagramElement) req.getSource();
117
		DiagramElement source = (DiagramElement) sourceEObject;
231
		if (element.getFigure() != null) {
118
		FigureHandle target = (FigureHandle) targetEObject;
119
		if (!GMFGraphBaseItemSemanticEditPolicy.LinkConstraints.canCreateDiagramElementFigure_4001(source, target)) {
232
			return UnexecutableCommand.INSTANCE;
120
			return UnexecutableCommand.INSTANCE;
233
		}
121
		}
234
		SetRequest setReq = new SetRequest(req.getSource(), GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), req.getTarget());
122
		SetRequest setReq = new SetRequest(sourceEObject, GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), target);
235
		return getMSLWrapper(new SetValueCommand(setReq));
123
		return getMSLWrapper(new SetValueCommand(setReq));
236
	}
124
	}
125
237
}
126
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/FigureGalleryCanonicalEditPolicy.java (-45 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
14
import org.eclipse.gmf.runtime.notation.View;
15
import java.util.LinkedList;
16
import java.util.List;
17
18
/**
19
 * @generated
20
 */
21
public class FigureGalleryCanonicalEditPolicy extends CanonicalEditPolicy {
22
23
	/**
24
	 * @generated
25
	 */
26
	protected List getSemanticChildrenList() {
27
		List result = new LinkedList();
28
		return result;
29
	}
30
31
	/**
32
	 * @generated
33
	 */
34
	protected boolean shouldDeleteView(View view) {
35
		return view.isSetElement() && view.getElement() != null && view.getElement().eIsProxy();
36
	}
37
38
	/**
39
	 * @generated
40
	 */
41
	protected String getDefaultFactoryHint() {
42
		return null;
43
	}
44
45
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/GMFGraphTextNonResizableEditPolicy.java (-9 / +2 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 12-17 Link Here
12
12
13
import java.util.Collections;
13
import java.util.Collections;
14
import java.util.List;
14
import java.util.List;
15
15
import org.eclipse.draw2d.ColorConstants;
16
import org.eclipse.draw2d.ColorConstants;
16
import org.eclipse.draw2d.Figure;
17
import org.eclipse.draw2d.Figure;
17
import org.eclipse.draw2d.Graphics;
18
import org.eclipse.draw2d.Graphics;
Lines 20-26 Link Here
20
import org.eclipse.draw2d.RectangleFigure;
21
import org.eclipse.draw2d.RectangleFigure;
21
import org.eclipse.draw2d.geometry.Rectangle;
22
import org.eclipse.draw2d.geometry.Rectangle;
22
import org.eclipse.gef.GraphicalEditPart;
23
import org.eclipse.gef.GraphicalEditPart;
23
import org.eclipse.gef.LayerConstants;
24
import org.eclipse.gef.handles.MoveHandle;
24
import org.eclipse.gef.handles.MoveHandle;
25
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.NonResizableEditPolicyEx;
25
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.NonResizableEditPolicyEx;
26
import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx;
26
import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx;
Lines 115-127 Link Here
115
	/**
115
	/**
116
	 * @generated
116
	 * @generated
117
	 */
117
	 */
118
	protected IFigure getFeedbackLayer() {
119
		return getLayer(LayerConstants.SCALED_FEEDBACK_LAYER);
120
	}
121
122
	/**
123
	 * @generated
124
	 */
125
	protected Rectangle getFeedbackBounds() {
118
	protected Rectangle getFeedbackBounds() {
126
		Rectangle bounds;
119
		Rectangle bounds;
127
		if (getHostFigure() instanceof Label) {
120
		if (getHostFigure() instanceof Label) {
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/GMFGraphBaseItemSemanticEditPolicy.java (-2 / +23 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 15-20 Link Here
15
import org.eclipse.emf.transaction.TransactionalEditingDomain;
15
import org.eclipse.emf.transaction.TransactionalEditingDomain;
16
import org.eclipse.gef.commands.Command;
16
import org.eclipse.gef.commands.Command;
17
import org.eclipse.gef.commands.UnexecutableCommand;
17
import org.eclipse.gef.commands.UnexecutableCommand;
18
import org.eclipse.gmf.gmfgraph.DiagramElement;
19
import org.eclipse.gmf.gmfgraph.FigureHandle;
20
import org.eclipse.gmf.graphdef.editor.edit.helpers.GMFGraphBaseEditHelper;
18
import org.eclipse.gmf.runtime.common.core.command.ICommand;
21
import org.eclipse.gmf.runtime.common.core.command.ICommand;
19
import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
22
import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
20
import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
23
import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
Lines 40-46 Link Here
40
import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
43
import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
41
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
44
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
42
import org.eclipse.gmf.runtime.notation.View;
45
import org.eclipse.gmf.runtime.notation.View;
43
import org.eclipse.gmf.graphdef.editor.edit.helpers.GMFGraphBaseEditHelper;
44
46
45
/**
47
/**
46
 * @generated
48
 * @generated
Lines 233-236 Link Here
233
		return null;
235
		return null;
234
	}
236
	}
235
237
238
	/**
239
	 * @generated
240
	 */
241
	protected static class LinkConstraints {
242
243
		/**
244
		 * @generated
245
		 */
246
		public static boolean canCreateDiagramElementFigure_4001(DiagramElement source, FigureHandle target) {
247
			if (source != null) {
248
				if (source.getFigure() != null) {
249
					return false;
250
				}
251
			}
252
			return true;
253
		}
254
255
	}
256
236
}
257
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/RectangleGraphicalNodeEditPolicy.java (-17 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
/**
14
 * @generated
15
 */
16
public class RectangleGraphicalNodeEditPolicy extends GMFGraphGraphicalNodeEditPolicy {
17
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/CompartmentItemSemanticEditPolicy.java (-15 / +40 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-27 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import java.util.ArrayList;
14
import java.util.Collection;
15
import java.util.Collections;
16
import java.util.Iterator;
17
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.emf.ecore.EObject;
20
import org.eclipse.gef.EditPart;
13
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.Command;
22
import org.eclipse.gef.commands.CompoundCommand;
23
import org.eclipse.gef.commands.UnexecutableCommand;
24
import org.eclipse.gmf.gmfgraph.DiagramElement;
25
import org.eclipse.gmf.graphdef.editor.edit.parts.CompartmentEditPart;
26
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
27
import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper;
14
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
28
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
15
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
29
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
16
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
30
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
17
import org.eclipse.emf.ecore.EObject;
31
import org.eclipse.gmf.runtime.notation.Edge;
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.gmf.runtime.notation.View;
32
import org.eclipse.gmf.runtime.notation.View;
20
import org.eclipse.gef.commands.UnexecutableCommand;
21
22
import org.eclipse.gmf.gmfgraph.DiagramElement;
23
24
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
25
33
26
/**
34
/**
27
 * @generated
35
 * @generated
Lines 32-38 Link Here
32
	 * @generated
40
	 * @generated
33
	 */
41
	 */
34
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
42
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
35
		return getMSLWrapper(new DestroyElementCommand(req) {
43
		CompoundCommand cc = new CompoundCommand();
44
		Collection allEdges = new ArrayList();
45
		View view = (View) getHost().getModel();
46
		allEdges.addAll(view.getSourceEdges());
47
		allEdges.addAll(view.getTargetEdges());
48
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
49
			Edge nextEdge = (Edge) it.next();
50
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
51
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((CompartmentEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
52
					Collections.EMPTY_MAP);
53
			cc.add(nextEditPart.getCommand(editCommandRequest));
54
		}
55
		cc.add(getMSLWrapper(new DestroyElementCommand(req) {
36
56
37
			protected EObject getElementToDestroy() {
57
			protected EObject getElementToDestroy() {
38
				View view = (View) getHost().getModel();
58
				View view = (View) getHost().getModel();
Lines 43-49 Link Here
43
				return super.getElementToDestroy();
63
				return super.getElementToDestroy();
44
			}
64
			}
45
65
46
		});
66
		}));
67
		return cc;
47
	}
68
	}
48
69
49
	/**
70
	/**
Lines 51-57 Link Here
51
	 */
72
	 */
52
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
73
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
53
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
74
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
54
			return req.getTarget() == null ? getCreateStartOutgoingDiagramElement_Figure4001Command(req) : null;
75
			return req.getTarget() == null ? getCreateStartOutgoingDiagramElementFigure_4001Command(req) : null;
55
		}
76
		}
56
		return super.getCreateRelationshipCommand(req);
77
		return super.getCreateRelationshipCommand(req);
57
	}
78
	}
Lines 59-71 Link Here
59
	/**
80
	/**
60
	 * @generated
81
	 * @generated
61
	 */
82
	 */
62
	protected Command getCreateStartOutgoingDiagramElement_Figure4001Command(CreateRelationshipRequest req) {
83
	protected Command getCreateStartOutgoingDiagramElementFigure_4001Command(CreateRelationshipRequest req) {
63
		DiagramElement element = (DiagramElement) getSemanticElement();
84
		EObject sourceEObject = req.getSource();
64
		if (element.getFigure() != null) {
85
		if (false == sourceEObject instanceof DiagramElement) {
86
			return UnexecutableCommand.INSTANCE;
87
		}
88
		DiagramElement source = (DiagramElement) sourceEObject;
89
		if (!GMFGraphBaseItemSemanticEditPolicy.LinkConstraints.canCreateDiagramElementFigure_4001(source, null)) {
65
			return UnexecutableCommand.INSTANCE;
90
			return UnexecutableCommand.INSTANCE;
66
		}
91
		}
67
68
		return new Command() {
92
		return new Command() {
69
		};
93
		};
70
	}
94
	}
95
71
}
96
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/PolylineGraphicalNodeEditPolicy.java (-17 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
/**
14
 * @generated
15
 */
16
public class PolylineGraphicalNodeEditPolicy extends GMFGraphGraphicalNodeEditPolicy {
17
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/CanvasCanonicalEditPolicy.java (-8 / +25 lines)
Lines 53-59 Link Here
53
53
54
import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
54
import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
55
55
56
import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
56
import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
57
import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
57
58
58
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
59
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
59
60
Lines 160-167 Link Here
160
	 * @generated
161
	 * @generated
161
	 */
162
	 */
162
	protected void refreshSemantic() {
163
	protected void refreshSemantic() {
163
		super.refreshSemantic();
164
		List createdViews = new LinkedList();
164
		refreshConnections();
165
		createdViews.addAll(refreshSemanticChildren());
166
		List createdConnectionViews = new LinkedList();
167
		createdConnectionViews.addAll(refreshSemanticConnections());
168
		createdConnectionViews.addAll(refreshConnections());
169
170
		if (createdViews.size() > 1) {
171
			// perform a layout of the container
172
			DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host().getEditingDomain(), createdViews, host());
173
			executeCommand(new ICommandProxy(layoutCmd));
174
		}
175
176
		createdViews.addAll(createdConnectionViews);
177
		makeViewsImmutable(createdViews);
165
	}
178
	}
166
179
167
	/**
180
	/**
Lines 177-183 Link Here
177
	/**
190
	/**
178
	 * @generated
191
	 * @generated
179
	 */
192
	 */
180
	private void refreshConnections() {
193
	private Collection refreshConnections() {
181
		try {
194
		try {
182
			collectAllLinks(getDiagram());
195
			collectAllLinks(getDiagram());
183
			Collection existingLinks = new LinkedList(getDiagram().getEdges());
196
			Collection existingLinks = new LinkedList(getDiagram().getEdges());
Lines 197-203 Link Here
197
				}
210
				}
198
			}
211
			}
199
			deleteViews(existingLinks.iterator());
212
			deleteViews(existingLinks.iterator());
200
			createConnections(myLinkDescriptors);
213
			return createConnections(myLinkDescriptors);
201
		} finally {
214
		} finally {
202
			myLinkDescriptors.clear();
215
			myLinkDescriptors.clear();
203
			myEObject2ViewMap.clear();
216
			myEObject2ViewMap.clear();
Lines 239-248 Link Here
239
	/**
252
	/**
240
	 * @generated
253
	 * @generated
241
	 */
254
	 */
242
	private void createConnections(Collection linkDescriptors) {
255
	private Collection createConnections(Collection linkDescriptors) {
243
		if (linkDescriptors.isEmpty()) {
256
		if (linkDescriptors.isEmpty()) {
244
			return;
257
			return Collections.EMPTY_LIST;
245
		}
258
		}
259
		List adapters = new LinkedList();
246
		for (Iterator linkDescriptorsIterator = linkDescriptors.iterator(); linkDescriptorsIterator.hasNext();) {
260
		for (Iterator linkDescriptorsIterator = linkDescriptors.iterator(); linkDescriptorsIterator.hasNext();) {
247
			final LinkDescriptor nextLinkDescriptor = (LinkDescriptor) linkDescriptorsIterator.next();
261
			final LinkDescriptor nextLinkDescriptor = (LinkDescriptor) linkDescriptorsIterator.next();
248
			EditPart sourceEditPart = getEditPartFor(nextLinkDescriptor.getSource());
262
			EditPart sourceEditPart = getEditPartFor(nextLinkDescriptor.getSource());
Lines 262-270 Link Here
262
			if (cmd != null && cmd.canExecute()) {
276
			if (cmd != null && cmd.canExecute()) {
263
				executeCommand(cmd);
277
				executeCommand(cmd);
264
				IAdaptable viewAdapter = (IAdaptable) ccr.getNewObject();
278
				IAdaptable viewAdapter = (IAdaptable) ccr.getNewObject();
265
				SetViewMutabilityCommand.makeImmutable(viewAdapter).execute();
279
				if (viewAdapter != null) {
280
					adapters.add(viewAdapter);
281
				}
266
			}
282
			}
267
		}
283
		}
284
		return adapters;
268
	}
285
	}
269
286
270
	/**
287
	/**
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/RoundedRectangleGraphicalNodeEditPolicy.java (-17 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
/**
14
 * @generated
15
 */
16
public class RoundedRectangleGraphicalNodeEditPolicy extends GMFGraphGraphicalNodeEditPolicy {
17
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/Polyline2ItemSemanticEditPolicy.java (-29 / +41 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-32 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import org.eclipse.gef.commands.Command;
13
import java.util.ArrayList;
14
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
14
import java.util.Collection;
15
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
15
import java.util.Collections;
16
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
16
import java.util.Iterator;
17
17
import org.eclipse.emf.ecore.EObject;
18
import org.eclipse.emf.ecore.EObject;
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.gef.EditPart;
19
import org.eclipse.gmf.runtime.notation.View;
20
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.CompoundCommand;
20
import org.eclipse.gef.commands.UnexecutableCommand;
22
import org.eclipse.gef.commands.UnexecutableCommand;
21
22
import org.eclipse.gmf.gmfgraph.DiagramElement;
23
import org.eclipse.gmf.gmfgraph.DiagramElement;
24
import org.eclipse.gmf.gmfgraph.FigureHandle;
23
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
25
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
24
26
import org.eclipse.gmf.graphdef.editor.edit.parts.Polyline2EditPart;
25
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
27
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
26
28
import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper;
29
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
27
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
30
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
28
31
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
32
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
29
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
33
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
34
import org.eclipse.gmf.runtime.notation.Edge;
35
import org.eclipse.gmf.runtime.notation.View;
30
36
31
/**
37
/**
32
 * @generated
38
 * @generated
Lines 37-54 Link Here
37
	 * @generated
43
	 * @generated
38
	 */
44
	 */
39
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
45
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
40
		return getMSLWrapper(new DestroyElementCommand(req) {
46
		CompoundCommand cc = new CompoundCommand();
41
47
		Collection allEdges = new ArrayList();
42
			protected EObject getElementToDestroy() {
48
		View view = (View) getHost().getModel();
43
				View view = (View) getHost().getModel();
49
		allEdges.addAll(view.getSourceEdges());
44
				EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
50
		allEdges.addAll(view.getTargetEdges());
45
				if (annotation != null) {
51
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
46
					return view;
52
			Edge nextEdge = (Edge) it.next();
47
				}
53
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
48
				return super.getElementToDestroy();
54
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((Polyline2EditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
49
			}
55
					Collections.EMPTY_MAP);
50
56
			cc.add(nextEditPart.getCommand(editCommandRequest));
51
		});
57
		}
58
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
59
		return cc;
52
	}
60
	}
53
61
54
	/**
62
	/**
Lines 56-62 Link Here
56
	 */
64
	 */
57
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
65
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
58
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
66
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
59
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElement_Figure4001Command(req);
67
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElementFigure_4001Command(req);
60
		}
68
		}
61
		return super.getCreateRelationshipCommand(req);
69
		return super.getCreateRelationshipCommand(req);
62
	}
70
	}
Lines 64-78 Link Here
64
	/**
72
	/**
65
	 * @generated
73
	 * @generated
66
	 */
74
	 */
67
	protected Command getCreateCompleteIncomingDiagramElement_Figure4001Command(CreateRelationshipRequest req) {
75
	protected Command getCreateCompleteIncomingDiagramElementFigure_4001Command(CreateRelationshipRequest req) {
68
		if (!(req.getSource() instanceof DiagramElement)) {
76
		EObject sourceEObject = req.getSource();
77
		EObject targetEObject = req.getTarget();
78
		if (false == sourceEObject instanceof DiagramElement || false == targetEObject instanceof FigureHandle) {
69
			return UnexecutableCommand.INSTANCE;
79
			return UnexecutableCommand.INSTANCE;
70
		}
80
		}
71
		DiagramElement element = (DiagramElement) req.getSource();
81
		DiagramElement source = (DiagramElement) sourceEObject;
72
		if (element.getFigure() != null) {
82
		FigureHandle target = (FigureHandle) targetEObject;
83
		if (!GMFGraphBaseItemSemanticEditPolicy.LinkConstraints.canCreateDiagramElementFigure_4001(source, target)) {
73
			return UnexecutableCommand.INSTANCE;
84
			return UnexecutableCommand.INSTANCE;
74
		}
85
		}
75
		SetRequest setReq = new SetRequest(req.getSource(), GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), req.getTarget());
86
		SetRequest setReq = new SetRequest(sourceEObject, GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), target);
76
		return getMSLWrapper(new SetValueCommand(setReq));
87
		return getMSLWrapper(new SetValueCommand(setReq));
77
	}
88
	}
89
78
}
90
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/ConnectionGraphicalNodeEditPolicy.java (-17 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
/**
14
 * @generated
15
 */
16
public class ConnectionGraphicalNodeEditPolicy extends GMFGraphGraphicalNodeEditPolicy {
17
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/CompartmentGraphicalNodeEditPolicy.java (-17 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
/**
14
 * @generated
15
 */
16
public class CompartmentGraphicalNodeEditPolicy extends GMFGraphGraphicalNodeEditPolicy {
17
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/FigureGalleryGraphicalNodeEditPolicy.java (-17 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
/**
14
 * @generated
15
 */
16
public class FigureGalleryGraphicalNodeEditPolicy extends GMFGraphGraphicalNodeEditPolicy {
17
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/GMFGraphGraphicalNodeEditPolicy.java (-53 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
import org.eclipse.emf.transaction.TransactionalEditingDomain;
14
import org.eclipse.gef.commands.Command;
15
import org.eclipse.gef.requests.CreateConnectionRequest;
16
import org.eclipse.gmf.runtime.common.core.command.CompositeCommand;
17
import org.eclipse.gmf.runtime.diagram.core.edithelpers.CreateElementRequestAdapter;
18
import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
19
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
20
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.GraphicalNodeEditPolicy;
21
import org.eclipse.gmf.runtime.diagram.ui.requests.CreateConnectionViewAndElementRequest;
22
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
23
import org.eclipse.gmf.graphdef.editor.edit.commands.GMFGraphReorientConnectionViewCommand;
24
25
/**
26
 * @generated
27
 */
28
public class GMFGraphGraphicalNodeEditPolicy extends GraphicalNodeEditPolicy {
29
30
	/**
31
	 * @generated
32
	 */
33
	protected IElementType getElementType(CreateConnectionRequest request) {
34
		if (request instanceof CreateConnectionViewAndElementRequest) {
35
			CreateElementRequestAdapter requestAdapter = ((CreateConnectionViewAndElementRequest) request).getConnectionViewAndElementDescriptor().getCreateElementRequestAdapter();
36
			return (IElementType) requestAdapter.getAdapter(IElementType.class);
37
		}
38
		return null;
39
	}
40
41
	/**
42
	 * @generated
43
	 */
44
	protected Command getConnectionWithReorientedViewCompleteCommand(CreateConnectionRequest request) {
45
		ICommandProxy c = (ICommandProxy) super.getConnectionCompleteCommand(request);
46
		CompositeCommand cc = (CompositeCommand) c.getICommand();
47
		TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()).getEditingDomain();
48
		GMFGraphReorientConnectionViewCommand rcvCommand = new GMFGraphReorientConnectionViewCommand(editingDomain, null);
49
		rcvCommand.setEdgeAdaptor(getViewAdapter());
50
		cc.compose(rcvCommand);
51
		return c;
52
	}
53
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/EllipseItemSemanticEditPolicy.java (-160 / +49 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-36 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import org.eclipse.gef.commands.Command;
13
import java.util.ArrayList;
14
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
14
import java.util.Collection;
15
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
15
import java.util.Collections;
16
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
16
import java.util.Iterator;
17
import org.eclipse.emf.ecore.EObject;
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.gmf.runtime.notation.View;
20
import org.eclipse.emf.ecore.EClass;
21
17
18
import org.eclipse.emf.ecore.EObject;
19
import org.eclipse.gef.EditPart;
20
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.CompoundCommand;
22
import org.eclipse.gef.commands.UnexecutableCommand;
22
import org.eclipse.gef.commands.UnexecutableCommand;
23
24
import org.eclipse.gmf.gmfgraph.DiagramElement;
23
import org.eclipse.gmf.gmfgraph.DiagramElement;
24
import org.eclipse.gmf.gmfgraph.FigureHandle;
25
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
25
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
26
26
import org.eclipse.gmf.graphdef.editor.edit.commands.EllipseCreateCommand;
27
import org.eclipse.gmf.graphdef.editor.edit.commands.PolylineCreateCommand;
28
import org.eclipse.gmf.graphdef.editor.edit.commands.Rectangle2CreateCommand;
29
import org.eclipse.gmf.graphdef.editor.edit.commands.RoundedRectangleCreateCommand;
30
import org.eclipse.gmf.graphdef.editor.edit.parts.EllipseEditPart;
27
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
31
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
28
32
import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper;
29
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
33
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
30
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
34
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
31
32
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
35
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
36
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
37
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
33
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
38
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
39
import org.eclipse.gmf.runtime.notation.Edge;
40
import org.eclipse.gmf.runtime.notation.View;
34
41
35
/**
42
/**
36
 * @generated
43
 * @generated
Lines 45-69 Link Here
45
			if (req.getContainmentFeature() == null) {
52
			if (req.getContainmentFeature() == null) {
46
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
53
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
47
			}
54
			}
48
			return getMSLWrapper(new CreateRectangle_3002Command(req));
55
			return getMSLWrapper(new Rectangle2CreateCommand(req));
49
		}
56
		}
50
		if (GMFGraphElementTypes.Ellipse_3003 == req.getElementType()) {
57
		if (GMFGraphElementTypes.Ellipse_3003 == req.getElementType()) {
51
			if (req.getContainmentFeature() == null) {
58
			if (req.getContainmentFeature() == null) {
52
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
59
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
53
			}
60
			}
54
			return getMSLWrapper(new CreateEllipse_3003Command(req));
61
			return getMSLWrapper(new EllipseCreateCommand(req));
55
		}
62
		}
56
		if (GMFGraphElementTypes.RoundedRectangle_3004 == req.getElementType()) {
63
		if (GMFGraphElementTypes.RoundedRectangle_3004 == req.getElementType()) {
57
			if (req.getContainmentFeature() == null) {
64
			if (req.getContainmentFeature() == null) {
58
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
65
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
59
			}
66
			}
60
			return getMSLWrapper(new CreateRoundedRectangle_3004Command(req));
67
			return getMSLWrapper(new RoundedRectangleCreateCommand(req));
61
		}
68
		}
62
		if (GMFGraphElementTypes.Polyline_3005 == req.getElementType()) {
69
		if (GMFGraphElementTypes.Polyline_3005 == req.getElementType()) {
63
			if (req.getContainmentFeature() == null) {
70
			if (req.getContainmentFeature() == null) {
64
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
71
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
65
			}
72
			}
66
			return getMSLWrapper(new CreatePolyline_3005Command(req));
73
			return getMSLWrapper(new PolylineCreateCommand(req));
67
		}
74
		}
68
		return super.getCreateCommand(req);
75
		return super.getCreateCommand(req);
69
	}
76
	}
Lines 71-213 Link Here
71
	/**
78
	/**
72
	 * @generated
79
	 * @generated
73
	 */
80
	 */
74
	private static class CreateRectangle_3002Command extends CreateElementCommand {
75
76
		/**
77
		 * @generated
78
		 */
79
		public CreateRectangle_3002Command(CreateElementRequest req) {
80
			super(req);
81
		}
82
83
		/**
84
		 * @generated
85
		 */
86
		protected EClass getEClassToEdit() {
87
			return GMFGraphPackage.eINSTANCE.getEllipse();
88
		};
89
90
		/**
91
		 * @generated
92
		 */
93
		protected EObject getElementToEdit() {
94
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
95
			if (container instanceof View) {
96
				container = ((View) container).getElement();
97
			}
98
			return container;
99
		}
100
	}
101
102
	/**
103
	 * @generated
104
	 */
105
	private static class CreateEllipse_3003Command extends CreateElementCommand {
106
107
		/**
108
		 * @generated
109
		 */
110
		public CreateEllipse_3003Command(CreateElementRequest req) {
111
			super(req);
112
		}
113
114
		/**
115
		 * @generated
116
		 */
117
		protected EClass getEClassToEdit() {
118
			return GMFGraphPackage.eINSTANCE.getEllipse();
119
		};
120
121
		/**
122
		 * @generated
123
		 */
124
		protected EObject getElementToEdit() {
125
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
126
			if (container instanceof View) {
127
				container = ((View) container).getElement();
128
			}
129
			return container;
130
		}
131
	}
132
133
	/**
134
	 * @generated
135
	 */
136
	private static class CreateRoundedRectangle_3004Command extends CreateElementCommand {
137
138
		/**
139
		 * @generated
140
		 */
141
		public CreateRoundedRectangle_3004Command(CreateElementRequest req) {
142
			super(req);
143
		}
144
145
		/**
146
		 * @generated
147
		 */
148
		protected EClass getEClassToEdit() {
149
			return GMFGraphPackage.eINSTANCE.getEllipse();
150
		};
151
152
		/**
153
		 * @generated
154
		 */
155
		protected EObject getElementToEdit() {
156
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
157
			if (container instanceof View) {
158
				container = ((View) container).getElement();
159
			}
160
			return container;
161
		}
162
	}
163
164
	/**
165
	 * @generated
166
	 */
167
	private static class CreatePolyline_3005Command extends CreateElementCommand {
168
169
		/**
170
		 * @generated
171
		 */
172
		public CreatePolyline_3005Command(CreateElementRequest req) {
173
			super(req);
174
		}
175
176
		/**
177
		 * @generated
178
		 */
179
		protected EClass getEClassToEdit() {
180
			return GMFGraphPackage.eINSTANCE.getEllipse();
181
		};
182
183
		/**
184
		 * @generated
185
		 */
186
		protected EObject getElementToEdit() {
187
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
188
			if (container instanceof View) {
189
				container = ((View) container).getElement();
190
			}
191
			return container;
192
		}
193
	}
194
195
	/**
196
	 * @generated
197
	 */
198
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
81
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
199
		return getMSLWrapper(new DestroyElementCommand(req) {
82
		CompoundCommand cc = new CompoundCommand();
200
83
		Collection allEdges = new ArrayList();
201
			protected EObject getElementToDestroy() {
84
		View view = (View) getHost().getModel();
202
				View view = (View) getHost().getModel();
85
		allEdges.addAll(view.getSourceEdges());
203
				EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
86
		allEdges.addAll(view.getTargetEdges());
204
				if (annotation != null) {
87
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
205
					return view;
88
			Edge nextEdge = (Edge) it.next();
206
				}
89
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
207
				return super.getElementToDestroy();
90
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((EllipseEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
208
			}
91
					Collections.EMPTY_MAP);
209
92
			cc.add(nextEditPart.getCommand(editCommandRequest));
210
		});
93
		}
94
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
95
		return cc;
211
	}
96
	}
212
97
213
	/**
98
	/**
Lines 215-221 Link Here
215
	 */
100
	 */
216
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
101
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
217
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
102
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
218
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElement_Figure4001Command(req);
103
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElementFigure_4001Command(req);
219
		}
104
		}
220
		return super.getCreateRelationshipCommand(req);
105
		return super.getCreateRelationshipCommand(req);
221
	}
106
	}
Lines 223-237 Link Here
223
	/**
108
	/**
224
	 * @generated
109
	 * @generated
225
	 */
110
	 */
226
	protected Command getCreateCompleteIncomingDiagramElement_Figure4001Command(CreateRelationshipRequest req) {
111
	protected Command getCreateCompleteIncomingDiagramElementFigure_4001Command(CreateRelationshipRequest req) {
227
		if (!(req.getSource() instanceof DiagramElement)) {
112
		EObject sourceEObject = req.getSource();
113
		EObject targetEObject = req.getTarget();
114
		if (false == sourceEObject instanceof DiagramElement || false == targetEObject instanceof FigureHandle) {
228
			return UnexecutableCommand.INSTANCE;
115
			return UnexecutableCommand.INSTANCE;
229
		}
116
		}
230
		DiagramElement element = (DiagramElement) req.getSource();
117
		DiagramElement source = (DiagramElement) sourceEObject;
231
		if (element.getFigure() != null) {
118
		FigureHandle target = (FigureHandle) targetEObject;
119
		if (!GMFGraphBaseItemSemanticEditPolicy.LinkConstraints.canCreateDiagramElementFigure_4001(source, target)) {
232
			return UnexecutableCommand.INSTANCE;
120
			return UnexecutableCommand.INSTANCE;
233
		}
121
		}
234
		SetRequest setReq = new SetRequest(req.getSource(), GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), req.getTarget());
122
		SetRequest setReq = new SetRequest(sourceEObject, GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), target);
235
		return getMSLWrapper(new SetValueCommand(setReq));
123
		return getMSLWrapper(new SetValueCommand(setReq));
236
	}
124
	}
125
237
}
126
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/RoundedRectangle2GraphicalNodeEditPolicy.java (-17 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
/**
14
 * @generated
15
 */
16
public class RoundedRectangle2GraphicalNodeEditPolicy extends GMFGraphGraphicalNodeEditPolicy {
17
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/CompartmentVisualFacetsItemSemanticEditPolicy.java (-12 lines)
Lines 10-29 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import org.eclipse.gef.commands.Command;
14
15
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
16
17
/**
13
/**
18
 * @generated
14
 * @generated
19
 */
15
 */
20
public class CompartmentVisualFacetsItemSemanticEditPolicy extends GMFGraphBaseItemSemanticEditPolicy {
16
public class CompartmentVisualFacetsItemSemanticEditPolicy extends GMFGraphBaseItemSemanticEditPolicy {
21
22
	/**
23
	 * @generated
24
	 */
25
	protected Command getCreateCommand(CreateElementRequest req) {
26
		return super.getCreateCommand(req);
27
	}
28
29
}
17
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/Rectangle2ItemSemanticEditPolicy.java (-160 / +49 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-36 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import org.eclipse.gef.commands.Command;
13
import java.util.ArrayList;
14
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
14
import java.util.Collection;
15
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
15
import java.util.Collections;
16
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
16
import java.util.Iterator;
17
import org.eclipse.emf.ecore.EObject;
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.gmf.runtime.notation.View;
20
import org.eclipse.emf.ecore.EClass;
21
17
18
import org.eclipse.emf.ecore.EObject;
19
import org.eclipse.gef.EditPart;
20
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.CompoundCommand;
22
import org.eclipse.gef.commands.UnexecutableCommand;
22
import org.eclipse.gef.commands.UnexecutableCommand;
23
24
import org.eclipse.gmf.gmfgraph.DiagramElement;
23
import org.eclipse.gmf.gmfgraph.DiagramElement;
24
import org.eclipse.gmf.gmfgraph.FigureHandle;
25
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
25
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
26
26
import org.eclipse.gmf.graphdef.editor.edit.commands.EllipseCreateCommand;
27
import org.eclipse.gmf.graphdef.editor.edit.commands.PolylineCreateCommand;
28
import org.eclipse.gmf.graphdef.editor.edit.commands.Rectangle2CreateCommand;
29
import org.eclipse.gmf.graphdef.editor.edit.commands.RoundedRectangleCreateCommand;
30
import org.eclipse.gmf.graphdef.editor.edit.parts.Rectangle2EditPart;
27
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
31
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
28
32
import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper;
29
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
33
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
30
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
34
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
31
32
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
35
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
36
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
37
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
33
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
38
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
39
import org.eclipse.gmf.runtime.notation.Edge;
40
import org.eclipse.gmf.runtime.notation.View;
34
41
35
/**
42
/**
36
 * @generated
43
 * @generated
Lines 45-69 Link Here
45
			if (req.getContainmentFeature() == null) {
52
			if (req.getContainmentFeature() == null) {
46
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
53
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
47
			}
54
			}
48
			return getMSLWrapper(new CreateRectangle_3002Command(req));
55
			return getMSLWrapper(new Rectangle2CreateCommand(req));
49
		}
56
		}
50
		if (GMFGraphElementTypes.Ellipse_3003 == req.getElementType()) {
57
		if (GMFGraphElementTypes.Ellipse_3003 == req.getElementType()) {
51
			if (req.getContainmentFeature() == null) {
58
			if (req.getContainmentFeature() == null) {
52
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
59
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
53
			}
60
			}
54
			return getMSLWrapper(new CreateEllipse_3003Command(req));
61
			return getMSLWrapper(new EllipseCreateCommand(req));
55
		}
62
		}
56
		if (GMFGraphElementTypes.RoundedRectangle_3004 == req.getElementType()) {
63
		if (GMFGraphElementTypes.RoundedRectangle_3004 == req.getElementType()) {
57
			if (req.getContainmentFeature() == null) {
64
			if (req.getContainmentFeature() == null) {
58
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
65
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
59
			}
66
			}
60
			return getMSLWrapper(new CreateRoundedRectangle_3004Command(req));
67
			return getMSLWrapper(new RoundedRectangleCreateCommand(req));
61
		}
68
		}
62
		if (GMFGraphElementTypes.Polyline_3005 == req.getElementType()) {
69
		if (GMFGraphElementTypes.Polyline_3005 == req.getElementType()) {
63
			if (req.getContainmentFeature() == null) {
70
			if (req.getContainmentFeature() == null) {
64
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
71
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigure_Children());
65
			}
72
			}
66
			return getMSLWrapper(new CreatePolyline_3005Command(req));
73
			return getMSLWrapper(new PolylineCreateCommand(req));
67
		}
74
		}
68
		return super.getCreateCommand(req);
75
		return super.getCreateCommand(req);
69
	}
76
	}
Lines 71-213 Link Here
71
	/**
78
	/**
72
	 * @generated
79
	 * @generated
73
	 */
80
	 */
74
	private static class CreateRectangle_3002Command extends CreateElementCommand {
75
76
		/**
77
		 * @generated
78
		 */
79
		public CreateRectangle_3002Command(CreateElementRequest req) {
80
			super(req);
81
		}
82
83
		/**
84
		 * @generated
85
		 */
86
		protected EClass getEClassToEdit() {
87
			return GMFGraphPackage.eINSTANCE.getRectangle();
88
		};
89
90
		/**
91
		 * @generated
92
		 */
93
		protected EObject getElementToEdit() {
94
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
95
			if (container instanceof View) {
96
				container = ((View) container).getElement();
97
			}
98
			return container;
99
		}
100
	}
101
102
	/**
103
	 * @generated
104
	 */
105
	private static class CreateEllipse_3003Command extends CreateElementCommand {
106
107
		/**
108
		 * @generated
109
		 */
110
		public CreateEllipse_3003Command(CreateElementRequest req) {
111
			super(req);
112
		}
113
114
		/**
115
		 * @generated
116
		 */
117
		protected EClass getEClassToEdit() {
118
			return GMFGraphPackage.eINSTANCE.getRectangle();
119
		};
120
121
		/**
122
		 * @generated
123
		 */
124
		protected EObject getElementToEdit() {
125
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
126
			if (container instanceof View) {
127
				container = ((View) container).getElement();
128
			}
129
			return container;
130
		}
131
	}
132
133
	/**
134
	 * @generated
135
	 */
136
	private static class CreateRoundedRectangle_3004Command extends CreateElementCommand {
137
138
		/**
139
		 * @generated
140
		 */
141
		public CreateRoundedRectangle_3004Command(CreateElementRequest req) {
142
			super(req);
143
		}
144
145
		/**
146
		 * @generated
147
		 */
148
		protected EClass getEClassToEdit() {
149
			return GMFGraphPackage.eINSTANCE.getRectangle();
150
		};
151
152
		/**
153
		 * @generated
154
		 */
155
		protected EObject getElementToEdit() {
156
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
157
			if (container instanceof View) {
158
				container = ((View) container).getElement();
159
			}
160
			return container;
161
		}
162
	}
163
164
	/**
165
	 * @generated
166
	 */
167
	private static class CreatePolyline_3005Command extends CreateElementCommand {
168
169
		/**
170
		 * @generated
171
		 */
172
		public CreatePolyline_3005Command(CreateElementRequest req) {
173
			super(req);
174
		}
175
176
		/**
177
		 * @generated
178
		 */
179
		protected EClass getEClassToEdit() {
180
			return GMFGraphPackage.eINSTANCE.getRectangle();
181
		};
182
183
		/**
184
		 * @generated
185
		 */
186
		protected EObject getElementToEdit() {
187
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
188
			if (container instanceof View) {
189
				container = ((View) container).getElement();
190
			}
191
			return container;
192
		}
193
	}
194
195
	/**
196
	 * @generated
197
	 */
198
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
81
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
199
		return getMSLWrapper(new DestroyElementCommand(req) {
82
		CompoundCommand cc = new CompoundCommand();
200
83
		Collection allEdges = new ArrayList();
201
			protected EObject getElementToDestroy() {
84
		View view = (View) getHost().getModel();
202
				View view = (View) getHost().getModel();
85
		allEdges.addAll(view.getSourceEdges());
203
				EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
86
		allEdges.addAll(view.getTargetEdges());
204
				if (annotation != null) {
87
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
205
					return view;
88
			Edge nextEdge = (Edge) it.next();
206
				}
89
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
207
				return super.getElementToDestroy();
90
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((Rectangle2EditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
208
			}
91
					Collections.EMPTY_MAP);
209
92
			cc.add(nextEditPart.getCommand(editCommandRequest));
210
		});
93
		}
94
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
95
		return cc;
211
	}
96
	}
212
97
213
	/**
98
	/**
Lines 215-221 Link Here
215
	 */
100
	 */
216
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
101
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
217
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
102
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
218
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElement_Figure4001Command(req);
103
			return req.getTarget() == null ? null : getCreateCompleteIncomingDiagramElementFigure_4001Command(req);
219
		}
104
		}
220
		return super.getCreateRelationshipCommand(req);
105
		return super.getCreateRelationshipCommand(req);
221
	}
106
	}
Lines 223-237 Link Here
223
	/**
108
	/**
224
	 * @generated
109
	 * @generated
225
	 */
110
	 */
226
	protected Command getCreateCompleteIncomingDiagramElement_Figure4001Command(CreateRelationshipRequest req) {
111
	protected Command getCreateCompleteIncomingDiagramElementFigure_4001Command(CreateRelationshipRequest req) {
227
		if (!(req.getSource() instanceof DiagramElement)) {
112
		EObject sourceEObject = req.getSource();
113
		EObject targetEObject = req.getTarget();
114
		if (false == sourceEObject instanceof DiagramElement || false == targetEObject instanceof FigureHandle) {
228
			return UnexecutableCommand.INSTANCE;
115
			return UnexecutableCommand.INSTANCE;
229
		}
116
		}
230
		DiagramElement element = (DiagramElement) req.getSource();
117
		DiagramElement source = (DiagramElement) sourceEObject;
231
		if (element.getFigure() != null) {
118
		FigureHandle target = (FigureHandle) targetEObject;
119
		if (!GMFGraphBaseItemSemanticEditPolicy.LinkConstraints.canCreateDiagramElementFigure_4001(source, target)) {
232
			return UnexecutableCommand.INSTANCE;
120
			return UnexecutableCommand.INSTANCE;
233
		}
121
		}
234
		SetRequest setReq = new SetRequest(req.getSource(), GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), req.getTarget());
122
		SetRequest setReq = new SetRequest(sourceEObject, GMFGraphPackage.eINSTANCE.getDiagramElement_Figure(), target);
235
		return getMSLWrapper(new SetValueCommand(setReq));
123
		return getMSLWrapper(new SetValueCommand(setReq));
236
	}
124
	}
125
237
}
126
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/PolylineCanonicalEditPolicy.java (-45 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
14
import org.eclipse.gmf.runtime.notation.View;
15
import java.util.LinkedList;
16
import java.util.List;
17
18
/**
19
 * @generated
20
 */
21
public class PolylineCanonicalEditPolicy extends CanonicalEditPolicy {
22
23
	/**
24
	 * @generated
25
	 */
26
	protected List getSemanticChildrenList() {
27
		List result = new LinkedList();
28
		return result;
29
	}
30
31
	/**
32
	 * @generated
33
	 */
34
	protected boolean shouldDeleteView(View view) {
35
		return view.isSetElement() && view.getElement() != null && view.getElement().eIsProxy();
36
	}
37
38
	/**
39
	 * @generated
40
	 */
41
	protected String getDefaultFactoryHint() {
42
		return null;
43
	}
44
45
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/Polyline2CanonicalEditPolicy.java (-45 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
14
import org.eclipse.gmf.runtime.notation.View;
15
import java.util.LinkedList;
16
import java.util.List;
17
18
/**
19
 * @generated
20
 */
21
public class Polyline2CanonicalEditPolicy extends CanonicalEditPolicy {
22
23
	/**
24
	 * @generated
25
	 */
26
	protected List getSemanticChildrenList() {
27
		List result = new LinkedList();
28
		return result;
29
	}
30
31
	/**
32
	 * @generated
33
	 */
34
	protected boolean shouldDeleteView(View view) {
35
		return view.isSetElement() && view.getElement() != null && view.getElement().eIsProxy();
36
	}
37
38
	/**
39
	 * @generated
40
	 */
41
	protected String getDefaultFactoryHint() {
42
		return null;
43
	}
44
45
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/FigureGalleryFiguresItemSemanticEditPolicy.java (-136 / +9 lines)
Lines 10-30 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import org.eclipse.emf.ecore.EClass;
14
import org.eclipse.emf.ecore.EObject;
15
16
import org.eclipse.gef.commands.Command;
13
import org.eclipse.gef.commands.Command;
17
14
18
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
15
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
19
16
20
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
17
import org.eclipse.gmf.graphdef.editor.edit.commands.Ellipse2CreateCommand;
18
import org.eclipse.gmf.graphdef.editor.edit.commands.Polyline2CreateCommand;
19
import org.eclipse.gmf.graphdef.editor.edit.commands.RectangleCreateCommand;
20
import org.eclipse.gmf.graphdef.editor.edit.commands.RoundedRectangle2CreateCommand;
21
21
22
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
22
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
23
23
24
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
24
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
25
25
26
import org.eclipse.gmf.runtime.notation.View;
27
28
/**
26
/**
29
 * @generated
27
 * @generated
30
 */
28
 */
Lines 38-188 Link Here
38
			if (req.getContainmentFeature() == null) {
36
			if (req.getContainmentFeature() == null) {
39
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigureGallery_Figures());
37
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigureGallery_Figures());
40
			}
38
			}
41
			return getMSLWrapper(new CreateRectangle_3001Command(req));
39
			return getMSLWrapper(new RectangleCreateCommand(req));
42
		}
40
		}
43
		if (GMFGraphElementTypes.Ellipse_3006 == req.getElementType()) {
41
		if (GMFGraphElementTypes.Ellipse_3006 == req.getElementType()) {
44
			if (req.getContainmentFeature() == null) {
42
			if (req.getContainmentFeature() == null) {
45
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigureGallery_Figures());
43
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigureGallery_Figures());
46
			}
44
			}
47
			return getMSLWrapper(new CreateEllipse_3006Command(req));
45
			return getMSLWrapper(new Ellipse2CreateCommand(req));
48
		}
46
		}
49
		if (GMFGraphElementTypes.RoundedRectangle_3007 == req.getElementType()) {
47
		if (GMFGraphElementTypes.RoundedRectangle_3007 == req.getElementType()) {
50
			if (req.getContainmentFeature() == null) {
48
			if (req.getContainmentFeature() == null) {
51
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigureGallery_Figures());
49
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigureGallery_Figures());
52
			}
50
			}
53
			return getMSLWrapper(new CreateRoundedRectangle_3007Command(req));
51
			return getMSLWrapper(new RoundedRectangle2CreateCommand(req));
54
		}
52
		}
55
		if (GMFGraphElementTypes.Polyline_3008 == req.getElementType()) {
53
		if (GMFGraphElementTypes.Polyline_3008 == req.getElementType()) {
56
			if (req.getContainmentFeature() == null) {
54
			if (req.getContainmentFeature() == null) {
57
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigureGallery_Figures());
55
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getFigureGallery_Figures());
58
			}
56
			}
59
			return getMSLWrapper(new CreatePolyline_3008Command(req));
57
			return getMSLWrapper(new Polyline2CreateCommand(req));
60
		}
58
		}
61
		return super.getCreateCommand(req);
59
		return super.getCreateCommand(req);
62
	}
60
	}
63
64
	/**
65
	 * @generated
66
	 */
67
	private static class CreateRectangle_3001Command extends CreateElementCommand {
68
69
		/**
70
		 * @generated
71
		 */
72
		public CreateRectangle_3001Command(CreateElementRequest req) {
73
			super(req);
74
		}
75
76
		/**
77
		 * @generated
78
		 */
79
		protected EClass getEClassToEdit() {
80
			return GMFGraphPackage.eINSTANCE.getFigureGallery();
81
		};
82
83
		/**
84
		 * @generated
85
		 */
86
		protected EObject getElementToEdit() {
87
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
88
			if (container instanceof View) {
89
				container = ((View) container).getElement();
90
			}
91
			return container;
92
		}
93
	}
94
95
	/**
96
	 * @generated
97
	 */
98
	private static class CreateEllipse_3006Command extends CreateElementCommand {
99
100
		/**
101
		 * @generated
102
		 */
103
		public CreateEllipse_3006Command(CreateElementRequest req) {
104
			super(req);
105
		}
106
107
		/**
108
		 * @generated
109
		 */
110
		protected EClass getEClassToEdit() {
111
			return GMFGraphPackage.eINSTANCE.getFigureGallery();
112
		};
113
114
		/**
115
		 * @generated
116
		 */
117
		protected EObject getElementToEdit() {
118
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
119
			if (container instanceof View) {
120
				container = ((View) container).getElement();
121
			}
122
			return container;
123
		}
124
	}
125
126
	/**
127
	 * @generated
128
	 */
129
	private static class CreateRoundedRectangle_3007Command extends CreateElementCommand {
130
131
		/**
132
		 * @generated
133
		 */
134
		public CreateRoundedRectangle_3007Command(CreateElementRequest req) {
135
			super(req);
136
		}
137
138
		/**
139
		 * @generated
140
		 */
141
		protected EClass getEClassToEdit() {
142
			return GMFGraphPackage.eINSTANCE.getFigureGallery();
143
		};
144
145
		/**
146
		 * @generated
147
		 */
148
		protected EObject getElementToEdit() {
149
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
150
			if (container instanceof View) {
151
				container = ((View) container).getElement();
152
			}
153
			return container;
154
		}
155
	}
156
157
	/**
158
	 * @generated
159
	 */
160
	private static class CreatePolyline_3008Command extends CreateElementCommand {
161
162
		/**
163
		 * @generated
164
		 */
165
		public CreatePolyline_3008Command(CreateElementRequest req) {
166
			super(req);
167
		}
168
169
		/**
170
		 * @generated
171
		 */
172
		protected EClass getEClassToEdit() {
173
			return GMFGraphPackage.eINSTANCE.getFigureGallery();
174
		};
175
176
		/**
177
		 * @generated
178
		 */
179
		protected EObject getElementToEdit() {
180
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
181
			if (container instanceof View) {
182
				container = ((View) container).getElement();
183
			}
184
			return container;
185
		}
186
	}
187
188
}
61
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/Rectangle2GraphicalNodeEditPolicy.java (-17 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
/**
14
 * @generated
15
 */
16
public class Rectangle2GraphicalNodeEditPolicy extends GMFGraphGraphicalNodeEditPolicy {
17
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/NodeVisualFacetsItemSemanticEditPolicy.java (-12 lines)
Lines 10-29 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import org.eclipse.gef.commands.Command;
14
15
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
16
17
/**
13
/**
18
 * @generated
14
 * @generated
19
 */
15
 */
20
public class NodeVisualFacetsItemSemanticEditPolicy extends GMFGraphBaseItemSemanticEditPolicy {
16
public class NodeVisualFacetsItemSemanticEditPolicy extends GMFGraphBaseItemSemanticEditPolicy {
21
22
	/**
23
	 * @generated
24
	 */
25
	protected Command getCreateCommand(CreateElementRequest req) {
26
		return super.getCreateCommand(req);
27
	}
28
29
}
17
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/Polyline2GraphicalNodeEditPolicy.java (-17 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
/**
14
 * @generated
15
 */
16
public class Polyline2GraphicalNodeEditPolicy extends GMFGraphGraphicalNodeEditPolicy {
17
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/ConnectionItemSemanticEditPolicy.java (-15 / +40 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-27 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import java.util.ArrayList;
14
import java.util.Collection;
15
import java.util.Collections;
16
import java.util.Iterator;
17
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.emf.ecore.EObject;
20
import org.eclipse.gef.EditPart;
13
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.Command;
22
import org.eclipse.gef.commands.CompoundCommand;
23
import org.eclipse.gef.commands.UnexecutableCommand;
24
import org.eclipse.gmf.gmfgraph.DiagramElement;
25
import org.eclipse.gmf.graphdef.editor.edit.parts.ConnectionEditPart;
26
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
27
import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper;
14
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
28
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
15
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
29
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
16
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
30
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
17
import org.eclipse.emf.ecore.EObject;
31
import org.eclipse.gmf.runtime.notation.Edge;
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.gmf.runtime.notation.View;
32
import org.eclipse.gmf.runtime.notation.View;
20
import org.eclipse.gef.commands.UnexecutableCommand;
21
22
import org.eclipse.gmf.gmfgraph.DiagramElement;
23
24
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
25
33
26
/**
34
/**
27
 * @generated
35
 * @generated
Lines 32-38 Link Here
32
	 * @generated
40
	 * @generated
33
	 */
41
	 */
34
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
42
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
35
		return getMSLWrapper(new DestroyElementCommand(req) {
43
		CompoundCommand cc = new CompoundCommand();
44
		Collection allEdges = new ArrayList();
45
		View view = (View) getHost().getModel();
46
		allEdges.addAll(view.getSourceEdges());
47
		allEdges.addAll(view.getTargetEdges());
48
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
49
			Edge nextEdge = (Edge) it.next();
50
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
51
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((ConnectionEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
52
					Collections.EMPTY_MAP);
53
			cc.add(nextEditPart.getCommand(editCommandRequest));
54
		}
55
		cc.add(getMSLWrapper(new DestroyElementCommand(req) {
36
56
37
			protected EObject getElementToDestroy() {
57
			protected EObject getElementToDestroy() {
38
				View view = (View) getHost().getModel();
58
				View view = (View) getHost().getModel();
Lines 43-49 Link Here
43
				return super.getElementToDestroy();
63
				return super.getElementToDestroy();
44
			}
64
			}
45
65
46
		});
66
		}));
67
		return cc;
47
	}
68
	}
48
69
49
	/**
70
	/**
Lines 51-57 Link Here
51
	 */
72
	 */
52
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
73
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
53
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
74
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
54
			return req.getTarget() == null ? getCreateStartOutgoingDiagramElement_Figure4001Command(req) : null;
75
			return req.getTarget() == null ? getCreateStartOutgoingDiagramElementFigure_4001Command(req) : null;
55
		}
76
		}
56
		return super.getCreateRelationshipCommand(req);
77
		return super.getCreateRelationshipCommand(req);
57
	}
78
	}
Lines 59-71 Link Here
59
	/**
80
	/**
60
	 * @generated
81
	 * @generated
61
	 */
82
	 */
62
	protected Command getCreateStartOutgoingDiagramElement_Figure4001Command(CreateRelationshipRequest req) {
83
	protected Command getCreateStartOutgoingDiagramElementFigure_4001Command(CreateRelationshipRequest req) {
63
		DiagramElement element = (DiagramElement) getSemanticElement();
84
		EObject sourceEObject = req.getSource();
64
		if (element.getFigure() != null) {
85
		if (false == sourceEObject instanceof DiagramElement) {
86
			return UnexecutableCommand.INSTANCE;
87
		}
88
		DiagramElement source = (DiagramElement) sourceEObject;
89
		if (!GMFGraphBaseItemSemanticEditPolicy.LinkConstraints.canCreateDiagramElementFigure_4001(source, null)) {
65
			return UnexecutableCommand.INSTANCE;
90
			return UnexecutableCommand.INSTANCE;
66
		}
91
		}
67
68
		return new Command() {
92
		return new Command() {
69
		};
93
		};
70
	}
94
	}
95
71
}
96
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/ConnectionVisualFacetsItemSemanticEditPolicy.java (-12 lines)
Lines 10-29 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import org.eclipse.gef.commands.Command;
14
15
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
16
17
/**
13
/**
18
 * @generated
14
 * @generated
19
 */
15
 */
20
public class ConnectionVisualFacetsItemSemanticEditPolicy extends GMFGraphBaseItemSemanticEditPolicy {
16
public class ConnectionVisualFacetsItemSemanticEditPolicy extends GMFGraphBaseItemSemanticEditPolicy {
21
22
	/**
23
	 * @generated
24
	 */
25
	protected Command getCreateCommand(CreateElementRequest req) {
26
		return super.getCreateCommand(req);
27
	}
28
29
}
17
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/CanvasItemSemanticEditPolicy.java (-135 / +9 lines)
Lines 15-33 Link Here
15
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
15
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
16
import org.eclipse.gmf.runtime.emf.commands.core.commands.DuplicateEObjectsCommand;
16
import org.eclipse.gmf.runtime.emf.commands.core.commands.DuplicateEObjectsCommand;
17
import org.eclipse.gmf.runtime.emf.type.core.requests.DuplicateElementsRequest;
17
import org.eclipse.gmf.runtime.emf.type.core.requests.DuplicateElementsRequest;
18
import org.eclipse.emf.ecore.EClass;
19
import org.eclipse.emf.ecore.EObject;
20
21
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
18
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
22
19
23
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
20
import org.eclipse.gmf.graphdef.editor.edit.commands.CompartmentCreateCommand;
21
import org.eclipse.gmf.graphdef.editor.edit.commands.ConnectionCreateCommand;
22
import org.eclipse.gmf.graphdef.editor.edit.commands.FigureGalleryCreateCommand;
23
import org.eclipse.gmf.graphdef.editor.edit.commands.NodeCreateCommand;
24
24
25
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
25
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
26
26
27
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
27
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
28
28
29
import org.eclipse.gmf.runtime.notation.View;
30
31
/**
29
/**
32
 * @generated
30
 * @generated
33
 */
31
 */
Lines 41-65 Link Here
41
			if (req.getContainmentFeature() == null) {
39
			if (req.getContainmentFeature() == null) {
42
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getCanvas_Compartments());
40
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getCanvas_Compartments());
43
			}
41
			}
44
			return getMSLWrapper(new CreateCompartment_2001Command(req));
42
			return getMSLWrapper(new CompartmentCreateCommand(req));
45
		}
43
		}
46
		if (GMFGraphElementTypes.Node_2002 == req.getElementType()) {
44
		if (GMFGraphElementTypes.Node_2002 == req.getElementType()) {
47
			if (req.getContainmentFeature() == null) {
45
			if (req.getContainmentFeature() == null) {
48
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getCanvas_Nodes());
46
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getCanvas_Nodes());
49
			}
47
			}
50
			return getMSLWrapper(new CreateNode_2002Command(req));
48
			return getMSLWrapper(new NodeCreateCommand(req));
51
		}
49
		}
52
		if (GMFGraphElementTypes.Connection_2003 == req.getElementType()) {
50
		if (GMFGraphElementTypes.Connection_2003 == req.getElementType()) {
53
			if (req.getContainmentFeature() == null) {
51
			if (req.getContainmentFeature() == null) {
54
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getCanvas_Connections());
52
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getCanvas_Connections());
55
			}
53
			}
56
			return getMSLWrapper(new CreateConnection_2003Command(req));
54
			return getMSLWrapper(new ConnectionCreateCommand(req));
57
		}
55
		}
58
		if (GMFGraphElementTypes.FigureGallery_2004 == req.getElementType()) {
56
		if (GMFGraphElementTypes.FigureGallery_2004 == req.getElementType()) {
59
			if (req.getContainmentFeature() == null) {
57
			if (req.getContainmentFeature() == null) {
60
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getCanvas_Figures());
58
				req.setContainmentFeature(GMFGraphPackage.eINSTANCE.getCanvas_Figures());
61
			}
59
			}
62
			return getMSLWrapper(new CreateFigureGallery_2004Command(req));
60
			return getMSLWrapper(new FigureGalleryCreateCommand(req));
63
		}
61
		}
64
		return super.getCreateCommand(req);
62
		return super.getCreateCommand(req);
65
	}
63
	}
Lines 67-196 Link Here
67
	/**
65
	/**
68
	 * @generated
66
	 * @generated
69
	 */
67
	 */
70
	private static class CreateCompartment_2001Command extends CreateElementCommand {
71
72
		/**
73
		 * @generated
74
		 */
75
		public CreateCompartment_2001Command(CreateElementRequest req) {
76
			super(req);
77
		}
78
79
		/**
80
		 * @generated
81
		 */
82
		protected EClass getEClassToEdit() {
83
			return GMFGraphPackage.eINSTANCE.getCanvas();
84
		};
85
86
		/**
87
		 * @generated
88
		 */
89
		protected EObject getElementToEdit() {
90
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
91
			if (container instanceof View) {
92
				container = ((View) container).getElement();
93
			}
94
			return container;
95
		}
96
	}
97
98
	/**
99
	 * @generated
100
	 */
101
	private static class CreateNode_2002Command extends CreateElementCommand {
102
103
		/**
104
		 * @generated
105
		 */
106
		public CreateNode_2002Command(CreateElementRequest req) {
107
			super(req);
108
		}
109
110
		/**
111
		 * @generated
112
		 */
113
		protected EClass getEClassToEdit() {
114
			return GMFGraphPackage.eINSTANCE.getCanvas();
115
		};
116
117
		/**
118
		 * @generated
119
		 */
120
		protected EObject getElementToEdit() {
121
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
122
			if (container instanceof View) {
123
				container = ((View) container).getElement();
124
			}
125
			return container;
126
		}
127
	}
128
129
	/**
130
	 * @generated
131
	 */
132
	private static class CreateConnection_2003Command extends CreateElementCommand {
133
134
		/**
135
		 * @generated
136
		 */
137
		public CreateConnection_2003Command(CreateElementRequest req) {
138
			super(req);
139
		}
140
141
		/**
142
		 * @generated
143
		 */
144
		protected EClass getEClassToEdit() {
145
			return GMFGraphPackage.eINSTANCE.getCanvas();
146
		};
147
148
		/**
149
		 * @generated
150
		 */
151
		protected EObject getElementToEdit() {
152
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
153
			if (container instanceof View) {
154
				container = ((View) container).getElement();
155
			}
156
			return container;
157
		}
158
	}
159
160
	/**
161
	 * @generated
162
	 */
163
	private static class CreateFigureGallery_2004Command extends CreateElementCommand {
164
165
		/**
166
		 * @generated
167
		 */
168
		public CreateFigureGallery_2004Command(CreateElementRequest req) {
169
			super(req);
170
		}
171
172
		/**
173
		 * @generated
174
		 */
175
		protected EClass getEClassToEdit() {
176
			return GMFGraphPackage.eINSTANCE.getCanvas();
177
		};
178
179
		/**
180
		 * @generated
181
		 */
182
		protected EObject getElementToEdit() {
183
			EObject container = ((CreateElementRequest) getRequest()).getContainer();
184
			if (container instanceof View) {
185
				container = ((View) container).getElement();
186
			}
187
			return container;
188
		}
189
	}
190
191
	/**
192
	 * @generated
193
	 */
194
	protected Command getDuplicateCommand(DuplicateElementsRequest req) {
68
	protected Command getDuplicateCommand(DuplicateElementsRequest req) {
195
		TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()).getEditingDomain();
69
		TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()).getEditingDomain();
196
		return getMSLWrapper(new DuplicateAnythingCommand(editingDomain, req));
70
		return getMSLWrapper(new DuplicateAnythingCommand(editingDomain, req));
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/NodeItemSemanticEditPolicy.java (-15 / +40 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 10-27 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import java.util.ArrayList;
14
import java.util.Collection;
15
import java.util.Collections;
16
import java.util.Iterator;
17
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.emf.ecore.EObject;
20
import org.eclipse.gef.EditPart;
13
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.Command;
22
import org.eclipse.gef.commands.CompoundCommand;
23
import org.eclipse.gef.commands.UnexecutableCommand;
24
import org.eclipse.gmf.gmfgraph.DiagramElement;
25
import org.eclipse.gmf.graphdef.editor.edit.parts.NodeEditPart;
26
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
27
import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper;
14
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
28
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
15
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
29
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
16
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
30
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
17
import org.eclipse.emf.ecore.EObject;
31
import org.eclipse.gmf.runtime.notation.Edge;
18
import org.eclipse.emf.ecore.EAnnotation;
19
import org.eclipse.gmf.runtime.notation.View;
32
import org.eclipse.gmf.runtime.notation.View;
20
import org.eclipse.gef.commands.UnexecutableCommand;
21
22
import org.eclipse.gmf.gmfgraph.DiagramElement;
23
24
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
25
33
26
/**
34
/**
27
 * @generated
35
 * @generated
Lines 32-38 Link Here
32
	 * @generated
40
	 * @generated
33
	 */
41
	 */
34
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
42
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
35
		return getMSLWrapper(new DestroyElementCommand(req) {
43
		CompoundCommand cc = new CompoundCommand();
44
		Collection allEdges = new ArrayList();
45
		View view = (View) getHost().getModel();
46
		allEdges.addAll(view.getSourceEdges());
47
		allEdges.addAll(view.getTargetEdges());
48
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
49
			Edge nextEdge = (Edge) it.next();
50
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
51
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((NodeEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
52
					Collections.EMPTY_MAP);
53
			cc.add(nextEditPart.getCommand(editCommandRequest));
54
		}
55
		cc.add(getMSLWrapper(new DestroyElementCommand(req) {
36
56
37
			protected EObject getElementToDestroy() {
57
			protected EObject getElementToDestroy() {
38
				View view = (View) getHost().getModel();
58
				View view = (View) getHost().getModel();
Lines 43-49 Link Here
43
				return super.getElementToDestroy();
63
				return super.getElementToDestroy();
44
			}
64
			}
45
65
46
		});
66
		}));
67
		return cc;
47
	}
68
	}
48
69
49
	/**
70
	/**
Lines 51-57 Link Here
51
	 */
72
	 */
52
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
73
	protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
53
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
74
		if (GMFGraphElementTypes.DiagramElementFigure_4001 == req.getElementType()) {
54
			return req.getTarget() == null ? getCreateStartOutgoingDiagramElement_Figure4001Command(req) : null;
75
			return req.getTarget() == null ? getCreateStartOutgoingDiagramElementFigure_4001Command(req) : null;
55
		}
76
		}
56
		return super.getCreateRelationshipCommand(req);
77
		return super.getCreateRelationshipCommand(req);
57
	}
78
	}
Lines 59-71 Link Here
59
	/**
80
	/**
60
	 * @generated
81
	 * @generated
61
	 */
82
	 */
62
	protected Command getCreateStartOutgoingDiagramElement_Figure4001Command(CreateRelationshipRequest req) {
83
	protected Command getCreateStartOutgoingDiagramElementFigure_4001Command(CreateRelationshipRequest req) {
63
		DiagramElement element = (DiagramElement) getSemanticElement();
84
		EObject sourceEObject = req.getSource();
64
		if (element.getFigure() != null) {
85
		if (false == sourceEObject instanceof DiagramElement) {
86
			return UnexecutableCommand.INSTANCE;
87
		}
88
		DiagramElement source = (DiagramElement) sourceEObject;
89
		if (!GMFGraphBaseItemSemanticEditPolicy.LinkConstraints.canCreateDiagramElementFigure_4001(source, null)) {
65
			return UnexecutableCommand.INSTANCE;
90
			return UnexecutableCommand.INSTANCE;
66
		}
91
		}
67
68
		return new Command() {
92
		return new Command() {
69
		};
93
		};
70
	}
94
	}
95
71
}
96
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/ConnectionVisualFacetsCanonicalEditPolicy.java (-45 lines)
Removed Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
13
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
14
import org.eclipse.gmf.runtime.notation.View;
15
import java.util.LinkedList;
16
import java.util.List;
17
18
/**
19
 * @generated
20
 */
21
public class ConnectionVisualFacetsCanonicalEditPolicy extends CanonicalEditPolicy {
22
23
	/**
24
	 * @generated
25
	 */
26
	protected List getSemanticChildrenList() {
27
		List result = new LinkedList();
28
		return result;
29
	}
30
31
	/**
32
	 * @generated
33
	 */
34
	protected boolean shouldDeleteView(View view) {
35
		return view.isSetElement() && view.getElement() != null && view.getElement().eIsProxy();
36
	}
37
38
	/**
39
	 * @generated
40
	 */
41
	protected String getDefaultFactoryHint() {
42
		return null;
43
	}
44
45
}
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/RoundedRectangleViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.RoundedRectangleEditPart;
22
23
23
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
25
Lines 49-55 Link Here
49
	 */
50
	 */
50
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
		if (semanticHint == null) {
52
		if (semanticHint == null) {
52
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.RoundedRectangleEditPart.VISUAL_ID);
53
			semanticHint = GMFGraphVisualIDRegistry.getType(RoundedRectangleEditPart.VISUAL_ID);
53
			view.setType(semanticHint);
54
			view.setType(semanticHint);
54
		}
55
		}
55
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
56
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/CompartmentVisualFacetsViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.CompartmentVisualFacetsEditPart;
22
23
23
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
25
Lines 52-58 Link Here
52
	 */
53
	 */
53
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
54
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
54
		if (semanticHint == null) {
55
		if (semanticHint == null) {
55
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.CompartmentVisualFacetsEditPart.VISUAL_ID);
56
			semanticHint = GMFGraphVisualIDRegistry.getType(CompartmentVisualFacetsEditPart.VISUAL_ID);
56
			view.setType(semanticHint);
57
			view.setType(semanticHint);
57
		}
58
		}
58
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
59
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/Rectangle2ViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.Rectangle2EditPart;
22
23
23
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
25
Lines 49-55 Link Here
49
	 */
50
	 */
50
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
		if (semanticHint == null) {
52
		if (semanticHint == null) {
52
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.Rectangle2EditPart.VISUAL_ID);
53
			semanticHint = GMFGraphVisualIDRegistry.getType(Rectangle2EditPart.VISUAL_ID);
53
			view.setType(semanticHint);
54
			view.setType(semanticHint);
54
		}
55
		}
55
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
56
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/EllipseViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.EllipseEditPart;
22
23
23
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
25
Lines 49-55 Link Here
49
	 */
50
	 */
50
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
		if (semanticHint == null) {
52
		if (semanticHint == null) {
52
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.EllipseEditPart.VISUAL_ID);
53
			semanticHint = GMFGraphVisualIDRegistry.getType(EllipseEditPart.VISUAL_ID);
53
			view.setType(semanticHint);
54
			view.setType(semanticHint);
54
		}
55
		}
55
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
56
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/DiagramElementFigureViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.DiagramElementFigureEditPart;
22
23
23
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
25
Lines 48-54 Link Here
48
	 */
49
	 */
49
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
50
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
50
		if (semanticHint == null) {
51
		if (semanticHint == null) {
51
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.DiagramElementFigureEditPart.VISUAL_ID);
52
			semanticHint = GMFGraphVisualIDRegistry.getType(DiagramElementFigureEditPart.VISUAL_ID);
52
			view.setType(semanticHint);
53
			view.setType(semanticHint);
53
		}
54
		}
54
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
55
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/Ellipse2ViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.Ellipse2EditPart;
22
23
23
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
25
Lines 49-55 Link Here
49
	 */
50
	 */
50
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
		if (semanticHint == null) {
52
		if (semanticHint == null) {
52
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.Ellipse2EditPart.VISUAL_ID);
53
			semanticHint = GMFGraphVisualIDRegistry.getType(Ellipse2EditPart.VISUAL_ID);
53
			view.setType(semanticHint);
54
			view.setType(semanticHint);
54
		}
55
		}
55
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
56
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/Polyline2ViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.Polyline2EditPart;
22
23
23
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
25
Lines 49-55 Link Here
49
	 */
50
	 */
50
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
		if (semanticHint == null) {
52
		if (semanticHint == null) {
52
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.Polyline2EditPart.VISUAL_ID);
53
			semanticHint = GMFGraphVisualIDRegistry.getType(Polyline2EditPart.VISUAL_ID);
53
			view.setType(semanticHint);
54
			view.setType(semanticHint);
54
		}
55
		}
55
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
56
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/NodeVisualFacetsViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.NodeVisualFacetsEditPart;
22
23
23
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
25
Lines 52-58 Link Here
52
	 */
53
	 */
53
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
54
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
54
		if (semanticHint == null) {
55
		if (semanticHint == null) {
55
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.NodeVisualFacetsEditPart.VISUAL_ID);
56
			semanticHint = GMFGraphVisualIDRegistry.getType(NodeVisualFacetsEditPart.VISUAL_ID);
56
			view.setType(semanticHint);
57
			view.setType(semanticHint);
57
		}
58
		}
58
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
59
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/CompartmentViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.CompartmentEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.CompartmentNameEditPart;
23
import org.eclipse.gmf.graphdef.editor.edit.parts.CompartmentNameEditPart;
23
import org.eclipse.gmf.graphdef.editor.edit.parts.CompartmentVisualFacetsEditPart;
24
import org.eclipse.gmf.graphdef.editor.edit.parts.CompartmentVisualFacetsEditPart;
24
25
Lines 53-59 Link Here
53
	 */
54
	 */
54
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
55
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
55
		if (semanticHint == null) {
56
		if (semanticHint == null) {
56
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.CompartmentEditPart.VISUAL_ID);
57
			semanticHint = GMFGraphVisualIDRegistry.getType(CompartmentEditPart.VISUAL_ID);
57
			view.setType(semanticHint);
58
			view.setType(semanticHint);
58
		}
59
		}
59
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
60
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/RectangleViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.RectangleEditPart;
22
23
23
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
25
Lines 49-55 Link Here
49
	 */
50
	 */
50
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
		if (semanticHint == null) {
52
		if (semanticHint == null) {
52
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.RectangleEditPart.VISUAL_ID);
53
			semanticHint = GMFGraphVisualIDRegistry.getType(RectangleEditPart.VISUAL_ID);
53
			view.setType(semanticHint);
54
			view.setType(semanticHint);
54
		}
55
		}
55
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
56
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/FigureGalleryViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.FigureGalleryEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.FigureGalleryFiguresEditPart;
23
import org.eclipse.gmf.graphdef.editor.edit.parts.FigureGalleryFiguresEditPart;
23
import org.eclipse.gmf.graphdef.editor.edit.parts.FigureGalleryNameEditPart;
24
import org.eclipse.gmf.graphdef.editor.edit.parts.FigureGalleryNameEditPart;
24
25
Lines 53-59 Link Here
53
	 */
54
	 */
54
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
55
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
55
		if (semanticHint == null) {
56
		if (semanticHint == null) {
56
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.FigureGalleryEditPart.VISUAL_ID);
57
			semanticHint = GMFGraphVisualIDRegistry.getType(FigureGalleryEditPart.VISUAL_ID);
57
			view.setType(semanticHint);
58
			view.setType(semanticHint);
58
		}
59
		}
59
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
60
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/ConnectionViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.ConnectionEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.ConnectionNameEditPart;
23
import org.eclipse.gmf.graphdef.editor.edit.parts.ConnectionNameEditPart;
23
import org.eclipse.gmf.graphdef.editor.edit.parts.ConnectionVisualFacetsEditPart;
24
import org.eclipse.gmf.graphdef.editor.edit.parts.ConnectionVisualFacetsEditPart;
24
25
Lines 53-59 Link Here
53
	 */
54
	 */
54
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
55
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
55
		if (semanticHint == null) {
56
		if (semanticHint == null) {
56
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.ConnectionEditPart.VISUAL_ID);
57
			semanticHint = GMFGraphVisualIDRegistry.getType(ConnectionEditPart.VISUAL_ID);
57
			view.setType(semanticHint);
58
			view.setType(semanticHint);
58
		}
59
		}
59
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
60
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/PolylineViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.PolylineEditPart;
22
23
23
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
25
Lines 49-55 Link Here
49
	 */
50
	 */
50
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
		if (semanticHint == null) {
52
		if (semanticHint == null) {
52
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.PolylineEditPart.VISUAL_ID);
53
			semanticHint = GMFGraphVisualIDRegistry.getType(PolylineEditPart.VISUAL_ID);
53
			view.setType(semanticHint);
54
			view.setType(semanticHint);
54
		}
55
		}
55
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
56
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/FigureGalleryFiguresViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.FigureGalleryFiguresEditPart;
22
23
23
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
25
Lines 52-58 Link Here
52
	 */
53
	 */
53
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
54
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
54
		if (semanticHint == null) {
55
		if (semanticHint == null) {
55
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.FigureGalleryFiguresEditPart.VISUAL_ID);
56
			semanticHint = GMFGraphVisualIDRegistry.getType(FigureGalleryFiguresEditPart.VISUAL_ID);
56
			view.setType(semanticHint);
57
			view.setType(semanticHint);
57
		}
58
		}
58
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
59
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/ConnectionVisualFacetsViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.ConnectionVisualFacetsEditPart;
22
23
23
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
25
Lines 52-58 Link Here
52
	 */
53
	 */
53
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
54
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
54
		if (semanticHint == null) {
55
		if (semanticHint == null) {
55
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.ConnectionVisualFacetsEditPart.VISUAL_ID);
56
			semanticHint = GMFGraphVisualIDRegistry.getType(ConnectionVisualFacetsEditPart.VISUAL_ID);
56
			view.setType(semanticHint);
57
			view.setType(semanticHint);
57
		}
58
		}
58
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
59
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/NodeViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.NodeEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.NodeNameEditPart;
23
import org.eclipse.gmf.graphdef.editor.edit.parts.NodeNameEditPart;
23
import org.eclipse.gmf.graphdef.editor.edit.parts.NodeVisualFacetsEditPart;
24
import org.eclipse.gmf.graphdef.editor.edit.parts.NodeVisualFacetsEditPart;
24
25
Lines 53-59 Link Here
53
	 */
54
	 */
54
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
55
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
55
		if (semanticHint == null) {
56
		if (semanticHint == null) {
56
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.NodeEditPart.VISUAL_ID);
57
			semanticHint = GMFGraphVisualIDRegistry.getType(NodeEditPart.VISUAL_ID);
57
			view.setType(semanticHint);
58
			view.setType(semanticHint);
58
		}
59
		}
59
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
60
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)src/org/eclipse/gmf/graphdef/editor/view/factories/RoundedRectangle2ViewFactory.java (-1 / +2 lines)
Lines 19-24 Link Here
19
import org.eclipse.emf.ecore.EcoreFactory;
19
import org.eclipse.emf.ecore.EcoreFactory;
20
20
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.RoundedRectangle2EditPart;
22
23
23
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
24
25
Lines 49-55 Link Here
49
	 */
50
	 */
50
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
	protected void decorateView(View containerView, View view, IAdaptable semanticAdapter, String semanticHint, int index, boolean persisted) {
51
		if (semanticHint == null) {
52
		if (semanticHint == null) {
52
			semanticHint = GMFGraphVisualIDRegistry.getType(org.eclipse.gmf.graphdef.editor.edit.parts.RoundedRectangle2EditPart.VISUAL_ID);
53
			semanticHint = GMFGraphVisualIDRegistry.getType(RoundedRectangle2EditPart.VISUAL_ID);
53
			view.setType(semanticHint);
54
			view.setType(semanticHint);
54
		}
55
		}
55
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
56
		super.decorateView(containerView, view, semanticAdapter, semanticHint, index, persisted);
(-)META-INF/MANIFEST.MF (-25 / +26 lines)
Lines 10-38 Link Here
10
Export-Package: org.eclipse.gmf.graphdef.editor.edit.parts, 
10
Export-Package: org.eclipse.gmf.graphdef.editor.edit.parts, 
11
 org.eclipse.gmf.graphdef.editor.part,
11
 org.eclipse.gmf.graphdef.editor.part,
12
 org.eclipse.gmf.graphdef.editor.providers
12
 org.eclipse.gmf.graphdef.editor.providers
13
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.3.0,4.0.0)",
13
Require-Bundle: org.eclipse.core.runtime,
14
 org.eclipse.core.resources;bundle-version="[3.3.0,4.0.0)",
14
 org.eclipse.core.resources,
15
 org.eclipse.jface;bundle-version="[3.3.0,4.0.0)",
15
 org.eclipse.core.expressions,
16
 org.eclipse.ui.ide;bundle-version="[3.3.0,4.0.0)",
16
 org.eclipse.jface,
17
 org.eclipse.ui.views;bundle-version="[3.2.0,4.0.0)",
17
 org.eclipse.ui.ide,
18
 org.eclipse.ui.workbench;bundle-version="[3.3.0,4.0.0)",
18
 org.eclipse.ui.views,
19
 org.eclipse.ui.workbench.texteditor;bundle-version="[3.3.0,4.0.0)",
19
 org.eclipse.ui.navigator,
20
 org.eclipse.emf.ecore;bundle-version="[2.3.0,3.0.0)",
20
 org.eclipse.emf.ecore,
21
 org.eclipse.emf.ecore.xmi;bundle-version="[2.3.0,3.0.0)",
21
 org.eclipse.emf.ecore.xmi,
22
 org.eclipse.emf.edit.ui;bundle-version="[2.3.0,3.0.0)",
22
 org.eclipse.emf.edit.ui,
23
 org.eclipse.gef;bundle-version="[3.2.2,4.0.0)";visibility:=reexport,
23
 org.eclipse.gef;visibility:=reexport,
24
 org.eclipse.gmf.runtime.emf.core;bundle-version="[1.0.0,2.0.0)",
24
 org.eclipse.gmf.runtime.emf.core,
25
 org.eclipse.gmf.runtime.emf.commands.core;bundle-version="[1.0.0,2.0.0)",
25
 org.eclipse.gmf.runtime.emf.commands.core,
26
 org.eclipse.gmf.runtime.emf.ui.properties;bundle-version="[1.0.0,2.0.0)",
26
 org.eclipse.gmf.runtime.emf.ui.properties,
27
 org.eclipse.gmf.runtime.diagram.ui;bundle-version="[1.0.0,2.0.0)",
27
 org.eclipse.gmf.runtime.diagram.ui,
28
 org.eclipse.gmf.runtime.diagram.ui.providers;bundle-version="[1.0.0,2.0.0)",
28
 org.eclipse.gmf.runtime.diagram.ui.properties,
29
 org.eclipse.gmf.runtime.diagram.ui.providers.ide;bundle-version="[1.0.0,2.0.0)",
29
 org.eclipse.gmf.runtime.diagram.ui.providers,
30
 org.eclipse.gmf.runtime.diagram.ui.render;bundle-version="[1.0.0,2.0.0)",
30
 org.eclipse.gmf.runtime.diagram.ui.providers.ide,
31
 org.eclipse.gmf.runtime.diagram.ui.resources.editor;bundle-version="[1.0.0,2.0.0)",
31
 org.eclipse.gmf.runtime.diagram.ui.render,
32
 org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide;bundle-version="[1.0.0,2.0.0)",
32
 org.eclipse.gmf.runtime.diagram.ui.resources.editor,
33
 org.eclipse.gmf.runtime.notation.providers;bundle-version="[1.0.0,2.0.0)",
33
 org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,
34
 org.eclipse.gmf.graphdef;bundle-version="[2.0.0,3.0.0)";visibility:=reexport,
34
 org.eclipse.gmf.runtime.notation.providers,
35
 org.eclipse.gmf.graphdef.edit;bundle-version="[2.0.0,3.0.0)";visibility:=reexport,
35
 org.eclipse.gmf.graphdef;visibility:=reexport,
36
 org.eclipse.gmf.runtime.draw2d.ui;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,
36
 org.eclipse.gmf.graphdef.edit;visibility:=reexport,
37
 org.eclipse.draw2d;bundle-version="[3.2.1,4.0.0)";visibility:=reexport
37
 org.eclipse.gmf.runtime.draw2d.ui;visibility:=reexport,
38
 org.eclipse.draw2d;visibility:=reexport
38
Eclipse-LazyStart: true
39
Eclipse-LazyStart: true
(-)build.properties (-6 / +7 lines)
Lines 1-7 Link Here
1
source.. = src/
1
bin.includes = .,\
2
output.. = bin/
2
               META-INF/,\
3
bin.includes = META-INF/,\
4
               .,\
5
               plugin.xml,\
3
               plugin.xml,\
6
               about.html,\
4
               plugin.properties,\
7
               icons/
5
               messages.properties
6
jars.compile.order = .
7
source.. = src/
8
output.. = bin/
(-)plugin.xml (-190 / +304 lines)
Lines 1-6 Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
1
<?xml version="1.0" encoding="UTF-8"?>
2
<?eclipse version="3.0"?>
2
<?eclipse version="3.0"?>
3
4
<!--
3
<!--
5
 Copyright (c) 2006 Borland Software Corporation and others.
4
 Copyright (c) 2006 Borland Software Corporation and others.
6
 All rights reserved. This program and the accompanying materials
5
 All rights reserved. This program and the accompanying materials
Lines 13-30 Link Here
13
-->
12
-->
14
<plugin>
13
<plugin>
15
14
16
   <extension point="org.eclipse.core.runtime.preferences">
15
   <extension point="org.eclipse.team.core.fileTypes">
17
      <initializer class="org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramPreferenceInitializer"/>
16
      <?gmfgen generated="true"?>
18
   </extension>
19
20
  <extension point="org.eclipse.team.core.fileTypes">
21
      <fileTypes
17
      <fileTypes
22
         type="text"
18
         type="text"
23
         extension="gmfgraph_diagram">
19
         extension="gmfgraph_diagram">
24
      </fileTypes>
20
      </fileTypes>
25
  </extension>
21
   </extension>
26
22
27
   <extension point="org.eclipse.emf.ecore.extension_parser">
23
   <extension point="org.eclipse.emf.ecore.extension_parser">
24
      <?gmfgen generated="true"?>
28
      <parser
25
      <parser
29
         type="gmfgraph_diagram"
26
         type="gmfgraph_diagram"
30
         class="org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory">
27
         class="org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory">
Lines 32-79 Link Here
32
   </extension>
29
   </extension>
33
30
34
   <extension point="org.eclipse.ui.editors">
31
   <extension point="org.eclipse.ui.editors">
35
     <editor
32
      <?gmfgen generated="true"?>
36
        id="org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorID"
33
      <editor
37
        name="GMFGraph Diagram Editor"
34
         id="org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorID"
38
        icon="icons/obj16/GMFGraphDiagramFile.gif"
35
         name="%editorName"
39
        extensions="gmfgraph_diagram"
36
         icon="icons/obj16/GMFGraphDiagramFile.gif"
40
        default="true"
37
         extensions="gmfgraph_diagram"
41
        class="org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditor"
38
         default="true"
42
        matchingStrategy="org.eclipse.gmf.graphdef.editor.part.GMFGraphMatchingStrategy"
39
         class="org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditor"
43
        contributorClass="org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramActionBarContributor">
40
         matchingStrategy="org.eclipse.gmf.graphdef.editor.part.GMFGraphMatchingStrategy"
44
     </editor>
41
         contributorClass="org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramActionBarContributor">
42
      </editor>
45
   </extension>
43
   </extension>
46
44
47
   <extension point="org.eclipse.ui.newWizards">
45
   <extension point="org.eclipse.ui.newWizards">
48
      <category 
46
      <?gmfgen generated="true"?>
49
         name="%GMF_example_wizard_category_name" 
50
         parentCategory="org.eclipse.ui.Examples" 
51
         id="org.eclipse.gmf.examples"/>
52
  	  <wizard
47
  	  <wizard
53
  	     name="GMFGraph Diagram"
48
  	     name="%newWizardName"
54
  	     icon="icons/obj16/GMFGraphDiagramFile.gif"
49
  	     icon="icons/obj16/GMFGraphDiagramFile.gif"
55
  	     category="org.eclipse.ui.Examples/org.eclipse.gmf.examples"
50
  	     category="org.eclipse.ui.Examples/org.eclipse.gmf.examples"
56
  	     class="org.eclipse.gmf.graphdef.editor.part.GMFGraphCreationWizard"
51
  	     class="org.eclipse.gmf.graphdef.editor.part.GMFGraphCreationWizard"
57
  	     id="org.eclipse.gmf.graphdef.editor.part.GMFGraphCreationWizardID">
52
  	     id="org.eclipse.gmf.graphdef.editor.part.GMFGraphCreationWizardID">
58
  	  	 <description>
53
  	  	 <description>%newWizardDesc</description>  
59
  	  		Creates GMFGraph diagram.
60
  	  	 </description>  
61
      </wizard>
54
      </wizard>
62
   </extension>
55
   </extension>
63
56
64
   <extension point="org.eclipse.ui.popupMenus">
57
   <extension point="org.eclipse.ui.popupMenus">
58
      <?gmfgen generated="true"?>
65
      <objectContribution
59
      <objectContribution
66
            id="org.eclipse.gmf.graphdef.editor.ui.objectContribution.IFile1"
60
            id="org.eclipse.gmf.graphdef.editor.ui.objectContribution.IFile1"
67
            nameFilter="*.gmfgraph"
61
            nameFilter="*.gmfgraph"
68
            objectClass="org.eclipse.core.resources.IFile">
62
            objectClass="org.eclipse.core.resources.IFile">
69
         <action
63
         <action
70
               label="Initialize gmfgraph_diagram diagram file"
64
               label="%initDiagramActionLabel"
71
               class="org.eclipse.gmf.graphdef.editor.part.GMFGraphInitDiagramFileAction"
65
               class="org.eclipse.gmf.graphdef.editor.part.GMFGraphInitDiagramFileAction"
72
               menubarPath="additions"
66
               menubarPath="additions"
73
               enablesFor="1"
67
               enablesFor="1"
74
               id="org.eclipse.gmf.graphdef.editor.part.GMFGraphInitDiagramFileActionID">
68
               id="org.eclipse.gmf.graphdef.editor.part.GMFGraphInitDiagramFileActionID">
75
         </action>
69
         </action>
76
      </objectContribution>  
70
      </objectContribution>
77
      <objectContribution
71
      <objectContribution
78
            adaptable="false"
72
            adaptable="false"
79
            id="org.eclipse.gmf.graphdef.editor.ui.objectContribution.CanvasEditPart1"
73
            id="org.eclipse.gmf.graphdef.editor.ui.objectContribution.CanvasEditPart1"
Lines 82-88 Link Here
82
               class="org.eclipse.gmf.graphdef.editor.part.GMFGraphCreateShortcutAction"
76
               class="org.eclipse.gmf.graphdef.editor.part.GMFGraphCreateShortcutAction"
83
               enablesFor="1"
77
               enablesFor="1"
84
               id="org.eclipse.gmf.graphdef.editor.part.GMFGraphCreateShortcutActionID"
78
               id="org.eclipse.gmf.graphdef.editor.part.GMFGraphCreateShortcutActionID"
85
               label="Create Shortcut..."
79
               label="%createShortcutActionLabel"
86
               menubarPath="additions">
80
               menubarPath="additions">
87
         </action>
81
         </action>
88
      </objectContribution>                      
82
      </objectContribution>                      
Lines 94-183 Link Here
94
               class="org.eclipse.gmf.graphdef.editor.part.GMFGraphLoadResourceAction"
88
               class="org.eclipse.gmf.graphdef.editor.part.GMFGraphLoadResourceAction"
95
               enablesFor="1"
89
               enablesFor="1"
96
               id="org.eclipse.gmf.graphdef.editor.part.GMFGraphLoadResourceActionID"
90
               id="org.eclipse.gmf.graphdef.editor.part.GMFGraphLoadResourceActionID"
97
               label="Load Resource..."
91
               label="%loadResourceActionLabel"
98
               menubarPath="additions">
92
               menubarPath="additions">
99
         </action>
93
         </action>
100
      </objectContribution>                      
94
      </objectContribution>           
101
  </extension>
102
103
   <extension point="org.eclipse.gmf.runtime.common.ui.services.action.contributionItemProviders">
104
      <contributionItemProvider
105
            class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContributionItemProvider"
106
            checkPluginLoaded="false">
107
         <Priority name="Low"/>
108
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
109
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.RectangleEditPart"/>
110
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
111
         </popupContribution>
112
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
113
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.Rectangle2EditPart"/>
114
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
115
         </popupContribution>
116
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
117
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.EllipseEditPart"/>
118
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
119
         </popupContribution>
120
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
121
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.RoundedRectangleEditPart"/>
122
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
123
         </popupContribution>
124
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
125
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.PolylineEditPart"/>
126
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
127
         </popupContribution>
128
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
129
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.Ellipse2EditPart"/>
130
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
131
         </popupContribution>
132
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
133
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.RoundedRectangle2EditPart"/>
134
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
135
         </popupContribution>
136
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
137
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.Polyline2EditPart"/>
138
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
139
         </popupContribution>
140
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
141
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.CompartmentEditPart"/>
142
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
143
         </popupContribution>
144
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
145
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.CompartmentNameEditPart"/>
146
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
147
         </popupContribution>
148
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
149
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.NodeEditPart"/>
150
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
151
         </popupContribution>
152
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
153
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.NodeNameEditPart"/>
154
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
155
         </popupContribution>
156
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
157
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.ConnectionEditPart"/>
158
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
159
         </popupContribution>
160
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
161
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.ConnectionNameEditPart"/>
162
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
163
         </popupContribution>
164
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
165
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.FigureGalleryEditPart"/>
166
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
167
         </popupContribution>
168
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
169
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.FigureGalleryNameEditPart"/>
170
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
171
         </popupContribution>
172
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
173
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.DiagramElementFigureEditPart"/>
174
            <popupAction path="/editGroup" id="deleteFromModelAction"/>
175
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
176
         </popupContribution>
177
      </contributionItemProvider>
178
   </extension>
95
   </extension>
179
96
180
   <extension point="org.eclipse.gmf.runtime.common.ui.services.action.globalActionHandlerProviders">
97
   <extension point="org.eclipse.gmf.runtime.common.ui.services.action.globalActionHandlerProviders">
98
      <?gmfgen generated="true"?>
181
      <GlobalActionHandlerProvider
99
      <GlobalActionHandlerProvider
182
         class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramGlobalActionHandlerProvider"
100
         class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramGlobalActionHandlerProvider"
183
         id="GMFGraphPresentation">
101
         id="GMFGraphPresentation">
Lines 215-221 Link Here
215
      </GlobalActionHandlerProvider>
133
      </GlobalActionHandlerProvider>
216
   </extension>
134
   </extension>
217
135
136
   <extension point="org.eclipse.gmf.runtime.common.ui.services.action.contributionItemProviders">
137
      <?gmfgen generated="true"?>
138
      <contributionItemProvider
139
            class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContributionItemProvider"
140
            checkPluginLoaded="false">
141
         <Priority name="Low"/>
142
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
143
            <popupStructuredContributionCriteria objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.DiagramElementFigureEditPart"/>
144
            <popupAction path="/editGroup" id="deleteFromModelAction"/>
145
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
146
         </popupContribution>
147
      </contributionItemProvider>
148
   </extension>
149
150
   <extension point="org.eclipse.core.runtime.preferences">
151
      <?gmfgen generated="true"?>
152
      <initializer class="org.eclipse.gmf.graphdef.editor.preferences.DiagramPreferenceInitializer"/>
153
   </extension>
154
155
   <extension point="org.eclipse.ui.preferencePages">
156
      <?gmfgen generated="true"?>
157
      <page
158
            id="org.eclipse.gmf.graphdef.diagram.general"
159
            name="%preference.page.title.org.eclipse.gmf.graphdef.diagram.general"
160
            class="org.eclipse.gmf.graphdef.editor.preferences.DiagramGeneralPreferencePage">
161
      </page>
162
      <page
163
            id="org.eclipse.gmf.graphdef.diagram.appearance"
164
            name="%preference.page.title.org.eclipse.gmf.graphdef.diagram.appearance"
165
            category="org.eclipse.gmf.graphdef.diagram.general"
166
            class="org.eclipse.gmf.graphdef.editor.preferences.DiagramAppearancePreferencePage">
167
      </page>
168
      <page
169
            id="org.eclipse.gmf.graphdef.diagram.connections"
170
            name="%preference.page.title.org.eclipse.gmf.graphdef.diagram.connections"
171
            category="org.eclipse.gmf.graphdef.diagram.general"
172
            class="org.eclipse.gmf.graphdef.editor.preferences.DiagramConnectionsPreferencePage">
173
      </page>
174
      <page
175
            id="org.eclipse.gmf.graphdef.diagram.printing"
176
            name="%preference.page.title.org.eclipse.gmf.graphdef.diagram.printing"
177
            category="org.eclipse.gmf.graphdef.diagram.general"
178
            class="org.eclipse.gmf.graphdef.editor.preferences.DiagramPrintingPreferencePage">
179
      </page>
180
      <page
181
            id="org.eclipse.gmf.graphdef.diagram.rulersAndGrid"
182
            name="%preference.page.title.org.eclipse.gmf.graphdef.diagram.rulersAndGrid"
183
            category="org.eclipse.gmf.graphdef.diagram.general"
184
            class="org.eclipse.gmf.graphdef.editor.preferences.DiagramRulersAndGridPreferencePage">
185
      </page>
186
      <page
187
            id="org.eclipse.gmf.graphdef.diagram.pathmaps"
188
            name="%preference.page.title.org.eclipse.gmf.graphdef.diagram.pathmaps"
189
            category="org.eclipse.gmf.graphdef.diagram.general"
190
            class="org.eclipse.gmf.runtime.emf.ui.preferences.PathmapsPreferencePage">
191
      </page>
192
   </extension>
193
194
   <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
195
      <?gmfgen generated="true"?>
196
      <propertyContributor contributorId="org.eclipse.gmf.graphdef.editor" labelProvider="org.eclipse.gmf.graphdef.editor.sheet.GMFGraphSheetLabelProvider">
197
         <propertyCategory category="domain"/>
198
         <propertyCategory category="visual"/>
199
         <propertyCategory category="extra"/>
200
      </propertyContributor>
201
   </extension>
202
203
   <extension point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
204
      <?gmfgen generated="true"?>   
205
      <propertyTabs contributorId="org.eclipse.gmf.graphdef.editor">
206
         <propertyTab
207
             category="visual"
208
             id="property.tab.AppearancePropertySection"
209
             label="%tab.appearance"/>
210
          <propertyTab
211
             category="visual"
212
             id="property.tab.DiagramPropertySection"
213
             label="%tab.diagram"/>
214
          <propertyTab
215
             category="domain"
216
             id="property.tab.domain"
217
             label="%tab.domain"/>
218
      </propertyTabs>
219
   </extension>
220
221
   <extension point="org.eclipse.ui.views.properties.tabbed.propertySections">
222
      <?gmfgen generated="true"?>   
223
      <propertySections contributorId="org.eclipse.gmf.graphdef.editor">
224
         <propertySection id="property.section.ConnectorAppearancePropertySection" 
225
            filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.ConnectionEditPartPropertySectionFilter" 
226
            class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.ConnectionAppearancePropertySection" 
227
            tab="property.tab.AppearancePropertySection">
228
         </propertySection>
229
         <propertySection id="property.section.ShapeColorAndFontPropertySection" 
230
            filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.ShapeEditPartPropertySectionFilter" 
231
            class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.ShapeColorsAndFontsPropertySection" 
232
            tab="property.tab.AppearancePropertySection">
233
         </propertySection> 
234
         <propertySection id="property.section.DiagramColorsAndFontsPropertySection" 
235
            filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.DiagramEditPartPropertySectionFilter" 
236
            class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.DiagramColorsAndFontsPropertySection" 
237
            tab="property.tab.AppearancePropertySection">
238
         </propertySection>     
239
         <propertySection id="property.section.RulerGridPropertySection" 
240
            filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.DiagramEditPartPropertySectionFilter" 
241
            class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.grid.RulerGridPropertySection" 
242
            tab="property.tab.DiagramPropertySection">
243
         </propertySection>     
244
         <propertySection
245
            id="property.section.domain" 
246
            tab="property.tab.domain"
247
            class="org.eclipse.gmf.graphdef.editor.sheet.GMFGraphPropertySection">
248
            <input type="org.eclipse.gmf.runtime.notation.View"/>
249
            <input type="org.eclipse.gef.EditPart"/>
250
            <input type="org.eclipse.gmf.graphdef.editor.navigator.GMFGraphAbstractNavigatorItem"/>
251
         </propertySection>
252
      </propertySections>
253
   </extension>
254
218
   <extension point="org.eclipse.gmf.runtime.diagram.core.viewProviders">
255
   <extension point="org.eclipse.gmf.runtime.diagram.core.viewProviders">
256
      <?gmfgen generated="true"?>
219
      <viewProvider class="org.eclipse.gmf.graphdef.editor.providers.GMFGraphViewProvider">
257
      <viewProvider class="org.eclipse.gmf.graphdef.editor.providers.GMFGraphViewProvider">
220
         <Priority name="Lowest"/>
258
         <Priority name="Lowest"/>
221
         <context viewClass="org.eclipse.gmf.runtime.notation.Diagram" semanticHints="GMFGraph"/>
259
         <context viewClass="org.eclipse.gmf.runtime.notation.Diagram" semanticHints="GMFGraph"/>
Lines 225-422 Link Here
225
   </extension>
263
   </extension>
226
264
227
   <extension point="org.eclipse.gmf.runtime.diagram.ui.editpartProviders">
265
   <extension point="org.eclipse.gmf.runtime.diagram.ui.editpartProviders">
266
      <?gmfgen generated="true"?>
228
      <editpartProvider class="org.eclipse.gmf.graphdef.editor.providers.GMFGraphEditPartProvider">
267
      <editpartProvider class="org.eclipse.gmf.graphdef.editor.providers.GMFGraphEditPartProvider">
229
         <Priority name="Lowest"/>
268
         <Priority name="Lowest"/>
230
      </editpartProvider>
269
      </editpartProvider>
231
   </extension>
270
   </extension>
232
271
233
   <extension point="org.eclipse.gmf.runtime.diagram.ui.paletteProviders">
234
      <paletteProvider class="org.eclipse.gmf.graphdef.editor.providers.GMFGraphPaletteProvider">
235
         <Priority name="Lowest"/>
236
         <editor id="org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorID"/>
237
      </paletteProvider>
238
   </extension>
239
240
   <extension point="org.eclipse.gmf.runtime.emf.ui.modelingAssistantProviders">
272
   <extension point="org.eclipse.gmf.runtime.emf.ui.modelingAssistantProviders">
273
      <?gmfgen generated="true"?>
241
      <modelingAssistantProvider class="org.eclipse.gmf.graphdef.editor.providers.GMFGraphModelingAssistantProvider">
274
      <modelingAssistantProvider class="org.eclipse.gmf.graphdef.editor.providers.GMFGraphModelingAssistantProvider">
242
         <Priority name="Lowest"/>
275
         <Priority name="Lowest"/>
243
      </modelingAssistantProvider>
276
      </modelingAssistantProvider>
244
   </extension>
277
   </extension>
245
278
246
   <extension point="org.eclipse.gmf.runtime.common.ui.services.properties.propertiesProviders">
247
      <PropertiesProvider
248
            verifyPluginLoaded="false"
249
            class="org.eclipse.gmf.graphdef.editor.providers.GMFGraphPropertyProvider">
250
         <Priority name="Lowest"/>
251
      </PropertiesProvider>
252
   </extension>
253
254
   <extension point="org.eclipse.gmf.runtime.common.ui.services.iconProviders">
279
   <extension point="org.eclipse.gmf.runtime.common.ui.services.iconProviders">
280
      <?gmfgen generated="true"?>
255
      <IconProvider class="org.eclipse.gmf.graphdef.editor.providers.GMFGraphIconProvider">
281
      <IconProvider class="org.eclipse.gmf.graphdef.editor.providers.GMFGraphIconProvider">
256
         <Priority name="Low"/>
282
         <Priority name="Low"/>
257
      </IconProvider>
283
      </IconProvider>
258
   </extension>
284
   </extension>
259
285
260
   <extension point="org.eclipse.gmf.runtime.common.ui.services.parserProviders">
286
   <extension point="org.eclipse.gmf.runtime.common.ui.services.parserProviders">
287
      <?gmfgen generated="true"?>
261
      <ParserProvider class="org.eclipse.gmf.graphdef.editor.providers.GMFGraphParserProvider">
288
      <ParserProvider class="org.eclipse.gmf.graphdef.editor.providers.GMFGraphParserProvider">
262
         <Priority name="Lowest"/>
289
         <Priority name="Lowest"/>
263
      </ParserProvider>
290
      </ParserProvider>
264
   </extension>
291
   </extension>
265
292
266
   <extension point="org.eclipse.gmf.runtime.diagram.ui.decoratorProviders">
293
   <extension point="org.eclipse.gmf.runtime.diagram.ui.decoratorProviders">
294
      <?gmfgen generated="true"?>
267
      <decoratorProvider class="org.eclipse.gmf.graphdef.editor.providers.GMFGraphShortcutsDecoratorProvider">
295
      <decoratorProvider class="org.eclipse.gmf.graphdef.editor.providers.GMFGraphShortcutsDecoratorProvider">
268
         <Priority name="Lowest"/>
296
         <Priority name="Lowest"/>
269
      </decoratorProvider>
297
      </decoratorProvider>
270
   </extension>
298
   </extension>
271
299
272
   <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
300
   <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
273
301
      <?gmfgen generated="true"?>
274
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
302
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
275
         <metamodelType
303
         <metamodelType
276
               id="org.eclipse.gmf.graphdef.editor.Canvas_1000"
304
               id="org.eclipse.gmf.graphdef.editor.Canvas_1000"
305
               name="%metatype.name.Canvas_1000"
277
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
306
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
278
               eclass="Canvas"
307
               eclass="Canvas"
279
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.CanvasEditHelper">
308
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.CanvasEditHelper">
280
            <param name="semanticHint" value="1000"/>
309
            <param name="semanticHint" value="1000"/>
281
         </metamodelType>
310
         </metamodelType>
282
      </metamodel>
311
      </metamodel>
283
312
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
313
         <metamodelType
314
               id="org.eclipse.gmf.graphdef.editor.Compartment_2001"
315
               name="%metatype.name.Compartment_2001"
316
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
317
               eclass="Compartment"
318
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.CompartmentEditHelper">
319
            <param name="semanticHint" value="2001"/>
320
         </metamodelType>
321
      </metamodel>
322
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
323
         <metamodelType
324
               id="org.eclipse.gmf.graphdef.editor.Node_2002"
325
               name="%metatype.name.Node_2002"
326
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
327
               eclass="Node"
328
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.NodeEditHelper">
329
            <param name="semanticHint" value="2002"/>
330
         </metamodelType>
331
      </metamodel>
332
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
333
         <metamodelType
334
               id="org.eclipse.gmf.graphdef.editor.Connection_2003"
335
               name="%metatype.name.Connection_2003"
336
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
337
               eclass="Connection"
338
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.ConnectionEditHelper">
339
            <param name="semanticHint" value="2003"/>
340
         </metamodelType>
341
      </metamodel>
342
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
343
         <metamodelType
344
               id="org.eclipse.gmf.graphdef.editor.FigureGallery_2004"
345
               name="%metatype.name.FigureGallery_2004"
346
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
347
               eclass="FigureGallery"
348
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.FigureGalleryEditHelper">
349
            <param name="semanticHint" value="2004"/>
350
         </metamodelType>
351
      </metamodel>
284
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
352
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
285
         <metamodelType
353
         <metamodelType
286
               id="org.eclipse.gmf.graphdef.editor.Rectangle_3001"
354
               id="org.eclipse.gmf.graphdef.editor.Rectangle_3001"
287
               name="Rectangle"
355
               name="%metatype.name.Rectangle_3001"
288
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
356
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
289
               eclass="Rectangle"
357
               eclass="Rectangle"
290
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.RectangleEditHelper">
358
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.RectangleEditHelper">
291
            <param name="semanticHint" value="3001"/>
359
            <param name="semanticHint" value="3001"/>
292
         </metamodelType>
360
         </metamodelType>
293
      </metamodel>
361
      </metamodel>
294
295
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
362
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
296
         <specializationType
363
         <specializationType
297
               id="org.eclipse.gmf.graphdef.editor.Rectangle_3002"
364
               id="org.eclipse.gmf.graphdef.editor.Rectangle_3002"
298
               name="Rectangle"
365
               name="%metatype.name.Rectangle_3002"
299
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
366
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
300
               edithelperadvice="org.eclipse.gmf.graphdef.editor.edit.helpers.RectangleEditHelperAdvice">
367
               edithelperadvice="org.eclipse.gmf.graphdef.editor.edit.helpers.RectangleEditHelperAdvice">
301
            <specializes id="org.eclipse.gmf.graphdef.editor.Rectangle_3001"/>
368
            <specializes id="org.eclipse.gmf.graphdef.editor.Rectangle_3001"/>
302
            <param name="semanticHint" value="3002"/>
369
            <param name="semanticHint" value="3002"/>
303
         </specializationType>
370
         </specializationType>
304
      </metamodel>
371
      </metamodel>
305
306
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
372
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
307
         <metamodelType
373
         <metamodelType
308
               id="org.eclipse.gmf.graphdef.editor.Ellipse_3003"
374
               id="org.eclipse.gmf.graphdef.editor.Ellipse_3003"
309
               name="Ellipse"
375
               name="%metatype.name.Ellipse_3003"
310
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
376
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
311
               eclass="Ellipse"
377
               eclass="Ellipse"
312
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.EllipseEditHelper">
378
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.EllipseEditHelper">
313
            <param name="semanticHint" value="3003"/>
379
            <param name="semanticHint" value="3003"/>
314
         </metamodelType>
380
         </metamodelType>
315
      </metamodel>
381
      </metamodel>
316
317
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
382
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
318
         <metamodelType
383
         <metamodelType
319
               id="org.eclipse.gmf.graphdef.editor.RoundedRectangle_3004"
384
               id="org.eclipse.gmf.graphdef.editor.RoundedRectangle_3004"
320
               name="Rounded Rectangle"
385
               name="%metatype.name.RoundedRectangle_3004"
321
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
386
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
322
               eclass="RoundedRectangle"
387
               eclass="RoundedRectangle"
323
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.RoundedRectangleEditHelper">
388
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.RoundedRectangleEditHelper">
324
            <param name="semanticHint" value="3004"/>
389
            <param name="semanticHint" value="3004"/>
325
         </metamodelType>
390
         </metamodelType>
326
      </metamodel>
391
      </metamodel>
327
328
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
392
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
329
         <metamodelType
393
         <metamodelType
330
               id="org.eclipse.gmf.graphdef.editor.Polyline_3005"
394
               id="org.eclipse.gmf.graphdef.editor.Polyline_3005"
331
               name="Polyline"
395
               name="%metatype.name.Polyline_3005"
332
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
396
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
333
               eclass="Polyline"
397
               eclass="Polyline"
334
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.PolylineEditHelper">
398
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.PolylineEditHelper">
335
            <param name="semanticHint" value="3005"/>
399
            <param name="semanticHint" value="3005"/>
336
         </metamodelType>
400
         </metamodelType>
337
      </metamodel>
401
      </metamodel>
338
339
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
402
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
340
         <specializationType
403
         <specializationType
341
               id="org.eclipse.gmf.graphdef.editor.Ellipse_3006"
404
               id="org.eclipse.gmf.graphdef.editor.Ellipse_3006"
342
               name="Ellipse"
405
               name="%metatype.name.Ellipse_3006"
343
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
406
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
344
               edithelperadvice="org.eclipse.gmf.graphdef.editor.edit.helpers.EllipseEditHelperAdvice">
407
               edithelperadvice="org.eclipse.gmf.graphdef.editor.edit.helpers.EllipseEditHelperAdvice">
345
            <specializes id="org.eclipse.gmf.graphdef.editor.Ellipse_3003"/>
408
            <specializes id="org.eclipse.gmf.graphdef.editor.Ellipse_3003"/>
346
            <param name="semanticHint" value="3006"/>
409
            <param name="semanticHint" value="3006"/>
347
         </specializationType>
410
         </specializationType>
348
      </metamodel>
411
      </metamodel>
349
350
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
412
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
351
         <specializationType
413
         <specializationType
352
               id="org.eclipse.gmf.graphdef.editor.RoundedRectangle_3007"
414
               id="org.eclipse.gmf.graphdef.editor.RoundedRectangle_3007"
353
               name="Rounded Rectangle"
415
               name="%metatype.name.RoundedRectangle_3007"
354
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
416
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
355
               edithelperadvice="org.eclipse.gmf.graphdef.editor.edit.helpers.RoundedRectangleEditHelperAdvice">
417
               edithelperadvice="org.eclipse.gmf.graphdef.editor.edit.helpers.RoundedRectangleEditHelperAdvice">
356
            <specializes id="org.eclipse.gmf.graphdef.editor.RoundedRectangle_3004"/>
418
            <specializes id="org.eclipse.gmf.graphdef.editor.RoundedRectangle_3004"/>
357
            <param name="semanticHint" value="3007"/>
419
            <param name="semanticHint" value="3007"/>
358
         </specializationType>
420
         </specializationType>
359
      </metamodel>
421
      </metamodel>
360
361
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
422
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
362
         <specializationType
423
         <specializationType
363
               id="org.eclipse.gmf.graphdef.editor.Polyline_3008"
424
               id="org.eclipse.gmf.graphdef.editor.Polyline_3008"
364
               name="Polyline"
425
               name="%metatype.name.Polyline_3008"
365
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
426
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
366
               edithelperadvice="org.eclipse.gmf.graphdef.editor.edit.helpers.PolylineEditHelperAdvice">
427
               edithelperadvice="org.eclipse.gmf.graphdef.editor.edit.helpers.PolylineEditHelperAdvice">
367
            <specializes id="org.eclipse.gmf.graphdef.editor.Polyline_3005"/>
428
            <specializes id="org.eclipse.gmf.graphdef.editor.Polyline_3005"/>
368
            <param name="semanticHint" value="3008"/>
429
            <param name="semanticHint" value="3008"/>
369
         </specializationType>
430
         </specializationType>
370
      </metamodel>
431
      </metamodel>
371
372
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
373
         <metamodelType
374
               id="org.eclipse.gmf.graphdef.editor.Compartment_2001"
375
               name="Compartment"
376
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
377
               eclass="Compartment"
378
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.CompartmentEditHelper">
379
            <param name="semanticHint" value="2001"/>
380
         </metamodelType>
381
      </metamodel>
382
383
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
384
         <metamodelType
385
               id="org.eclipse.gmf.graphdef.editor.Node_2002"
386
               name="Node"
387
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
388
               eclass="Node"
389
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.NodeEditHelper">
390
            <param name="semanticHint" value="2002"/>
391
         </metamodelType>
392
      </metamodel>
393
394
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
395
         <metamodelType
396
               id="org.eclipse.gmf.graphdef.editor.Connection_2003"
397
               name="Connection"
398
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
399
               eclass="Connection"
400
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.ConnectionEditHelper">
401
            <param name="semanticHint" value="2003"/>
402
         </metamodelType>
403
      </metamodel>
404
405
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
406
         <metamodelType
407
               id="org.eclipse.gmf.graphdef.editor.FigureGallery_2004"
408
               name="FigureGallery"
409
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
410
               eclass="FigureGallery"
411
               edithelper="org.eclipse.gmf.graphdef.editor.edit.helpers.FigureGalleryEditHelper">
412
            <param name="semanticHint" value="2004"/>
413
         </metamodelType>
414
      </metamodel>
415
416
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
432
      <metamodel nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition">
417
         <specializationType
433
         <specializationType
418
               id="org.eclipse.gmf.graphdef.editor.DiagramElementFigure_4001"
434
               id="org.eclipse.gmf.graphdef.editor.DiagramElementFigure_4001"
419
               name="Figure Link"
435
               name="%metatype.name.DiagramElementFigure_4001"
420
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
436
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
421
               edithelperadvice="org.eclipse.gmf.graphdef.editor.edit.helpers.DiagramElementFigureEditHelperAdvice">
437
               edithelperadvice="org.eclipse.gmf.graphdef.editor.edit.helpers.DiagramElementFigureEditHelperAdvice">
422
            <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/>
438
            <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/>
Lines 426-431 Link Here
426
   </extension>
442
   </extension>
427
443
428
   <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings">
444
   <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings">
445
      <?gmfgen generated="true"?>
429
      <clientContext id="GMFGraphClientContext">
446
      <clientContext id="GMFGraphClientContext">
430
         <enablement>
447
         <enablement>
431
            <test
448
            <test
Lines 435-440 Link Here
435
      </clientContext> 
452
      </clientContext> 
436
      <binding context="GMFGraphClientContext">
453
      <binding context="GMFGraphClientContext">
437
         <elementType ref="org.eclipse.gmf.graphdef.editor.Canvas_1000"/>
454
         <elementType ref="org.eclipse.gmf.graphdef.editor.Canvas_1000"/>
455
         <elementType ref="org.eclipse.gmf.graphdef.editor.Compartment_2001"/>
456
         <elementType ref="org.eclipse.gmf.graphdef.editor.Node_2002"/>
457
         <elementType ref="org.eclipse.gmf.graphdef.editor.Connection_2003"/>
458
         <elementType ref="org.eclipse.gmf.graphdef.editor.FigureGallery_2004"/>
438
         <elementType ref="org.eclipse.gmf.graphdef.editor.Rectangle_3001"/>
459
         <elementType ref="org.eclipse.gmf.graphdef.editor.Rectangle_3001"/>
439
         <elementType ref="org.eclipse.gmf.graphdef.editor.Rectangle_3002"/>
460
         <elementType ref="org.eclipse.gmf.graphdef.editor.Rectangle_3002"/>
440
         <elementType ref="org.eclipse.gmf.graphdef.editor.Ellipse_3003"/>
461
         <elementType ref="org.eclipse.gmf.graphdef.editor.Ellipse_3003"/>
Lines 443-455 Link Here
443
         <elementType ref="org.eclipse.gmf.graphdef.editor.Ellipse_3006"/>
464
         <elementType ref="org.eclipse.gmf.graphdef.editor.Ellipse_3006"/>
444
         <elementType ref="org.eclipse.gmf.graphdef.editor.RoundedRectangle_3007"/>
465
         <elementType ref="org.eclipse.gmf.graphdef.editor.RoundedRectangle_3007"/>
445
         <elementType ref="org.eclipse.gmf.graphdef.editor.Polyline_3008"/>
466
         <elementType ref="org.eclipse.gmf.graphdef.editor.Polyline_3008"/>
446
         <elementType ref="org.eclipse.gmf.graphdef.editor.Compartment_2001"/>
447
         <elementType ref="org.eclipse.gmf.graphdef.editor.Node_2002"/>
448
         <elementType ref="org.eclipse.gmf.graphdef.editor.Connection_2003"/>
449
         <elementType ref="org.eclipse.gmf.graphdef.editor.FigureGallery_2004"/>
450
         <elementType ref="org.eclipse.gmf.graphdef.editor.DiagramElementFigure_4001"/>
467
         <elementType ref="org.eclipse.gmf.graphdef.editor.DiagramElementFigure_4001"/>
451
         <advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/>
468
         <advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/>
452
      </binding>
469
      </binding>
453
   </extension>
470
   </extension>
454
471
455
</plugin>
472
   <extension point="org.eclipse.core.expressions.propertyTesters">
473
      <?gmfgen generated="true"?>
474
       <propertyTester
475
           id="org.eclipse.gmf.graphdef.editor.ShortcutPropertyTester"
476
           type="org.eclipse.gmf.runtime.notation.View"
477
           namespace="org.eclipse.gmf.graphdef.editor"
478
           properties="isShortcut"
479
           class="org.eclipse.gmf.graphdef.editor.part.GMFGraphShortcutPropertyTester">
480
       </propertyTester>
481
   </extension>
482
483
   <extension point="org.eclipse.ui.navigator.viewer">
484
      <?gmfgen generated="true"?>
485
      <viewerContentBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer">
486
         <includes>
487
            <contentExtension pattern="org.eclipse.gmf.graphdef.editor.resourceContent"/>
488
            <contentExtension pattern="org.eclipse.gmf.graphdef.editor.navigatorLinkHelper"/>
489
         </includes>
490
      </viewerContentBinding>
491
      <viewerActionBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer">
492
         <includes>
493
            <actionExtension pattern="org.eclipse.gmf.graphdef.editor.navigatorActionProvider"/>
494
         </includes>
495
      </viewerActionBinding>
496
   </extension>
497
498
   <extension point="org.eclipse.ui.navigator.navigatorContent">
499
      <?gmfgen generated="true"?>
500
      <navigatorContent
501
            id="org.eclipse.gmf.graphdef.editor.resourceContent" 
502
            name="%navigatorContentName" 
503
            priority="normal" 
504
            contentProvider="org.eclipse.gmf.graphdef.editor.navigator.GMFGraphNavigatorContentProvider" 
505
            labelProvider="org.eclipse.gmf.graphdef.editor.navigator.GMFGraphNavigatorLabelProvider"
506
            icon="icons/obj16/GMFGraphDiagramFile.gif"
507
            activeByDefault="true">
508
         <triggerPoints>
509
            <or>
510
	           <and>
511
    	          <instanceof value="org.eclipse.core.resources.IFile"/>
512
        	      <test property="org.eclipse.core.resources.extension" value="gmfgraph_diagram"/>
513
               </and>
514
               <instanceof value="org.eclipse.gmf.graphdef.editor.navigator.GMFGraphAbstractNavigatorItem"/>
515
           	   <adapt type="org.eclipse.gmf.runtime.notation.View">
516
           	      <test property="org.eclipse.gmf.graphdef.editor.isShortcut"/>
517
           	   </adapt>
518
            </or>
519
         </triggerPoints>
520
         <possibleChildren>
521
            <or>
522
         	   <instanceof value="org.eclipse.gmf.graphdef.editor.navigator.GMFGraphAbstractNavigatorItem"/>
523
           	   <adapt type="org.eclipse.gmf.runtime.notation.View">
524
           	      <test property="org.eclipse.gmf.graphdef.editor.isShortcut"/>
525
           	   </adapt>
526
            </or>
527
         </possibleChildren>
528
         <commonSorter 
529
               id="org.eclipse.gmf.graphdef.editor.navigatorSorter" 
530
               class="org.eclipse.gmf.graphdef.editor.navigator.GMFGraphNavigatorSorter">
531
            <parentExpression>
532
               <or>
533
	              <and>
534
    	             <instanceof value="org.eclipse.core.resources.IFile"/>
535
        	         <test property="org.eclipse.core.resources.extension" value="gmfgraph_diagram"/>
536
                  </and>
537
                  <instanceof value="org.eclipse.gmf.graphdef.editor.navigator.GMFGraphAbstractNavigatorItem"/>
538
               </or>
539
            </parentExpression>
540
         </commonSorter>
541
      </navigatorContent>
542
      <actionProvider
543
            id="org.eclipse.gmf.graphdef.editor.navigatorActionProvider"
544
            class="org.eclipse.gmf.graphdef.editor.navigator.GMFGraphNavigatorActionProvider">
545
         <enablement>
546
            <or>
547
               <instanceof value="org.eclipse.gmf.graphdef.editor.navigator.GMFGraphAbstractNavigatorItem"/>
548
           	   <adapt type="org.eclipse.gmf.runtime.notation.View">
549
           	      <test property="org.eclipse.gmf.graphdef.editor.isShortcut"/>
550
           	   </adapt>
551
            </or>
552
         </enablement>
553
      </actionProvider>
554
   </extension>
555
   
556
   <extension point="org.eclipse.ui.navigator.linkHelper">
557
      <?gmfgen generated="true"?>
558
      <linkHelper
559
            id="org.eclipse.gmf.graphdef.editor.navigatorLinkHelper"
560
            class="org.eclipse.gmf.graphdef.editor.navigator.GMFGraphNavigatorLinkHelper">
561
         <editorInputEnablement>
562
            <instanceof value="org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.document.FileEditorInputProxy"/>
563
         </editorInputEnablement>
564
         <selectionEnablement>
565
            <instanceof value="org.eclipse.gmf.graphdef.editor.navigator.GMFGraphAbstractNavigatorItem"/>
566
         </selectionEnablement>
567
      </linkHelper>
568
   </extension>
569
</plugin>
(-)plugin.properties (-1 / +50 lines)
Lines 1-3 Link Here
1
pluginName=gmfgraph Plugin
1
pluginName=gmfgraph Plugin
2
providerName=Sample Plugin Provider, Inc
2
providerName=Sample Plugin Provider, Inc
3
GMF_example_wizard_category_name=GMF (Graphical Modeling Framework) Diagrams
3
4
preferences.general=GMFGraph Diagram
5
preferences.appearance=Appearance
6
preferences.connections=Connections
7
preferences.printing=Printing
8
preferences.rulersAndGrid=Rulers & Grid
9
preferences.pathmaps=Path Maps
10
11
editorName=GMFGraph Diagram Editor
12
newWizardName=GMFGraph Diagram
13
newWizardDesc=Creates GMFGraph diagram.
14
15
initDiagramActionLabel=Initialize gmfgraph_diagram diagram file
16
createShortcutActionLabel=Create Shortcut...
17
loadResourceActionLabel=Load Resource...
18
19
20
navigatorContentName=*.gmfgraph_diagram diagram contents
21
22
23
# Property Sheet
24
tab.appearance=Appearance
25
tab.diagram=Rulers & Grid
26
tab.domain=Core
27
28
# Preferences
29
preference.page.title.org.eclipse.gmf.graphdef.diagram.general=GMFGraph Diagram
30
preference.page.title.org.eclipse.gmf.graphdef.diagram.appearance=Appearance
31
preference.page.title.org.eclipse.gmf.graphdef.diagram.connections=Connections
32
preference.page.title.org.eclipse.gmf.graphdef.diagram.printing=Printing
33
preference.page.title.org.eclipse.gmf.graphdef.diagram.rulersAndGrid=Rulers And Grid
34
preference.page.title.org.eclipse.gmf.graphdef.diagram.pathmaps=Pathmaps
35
36
37
# Providers
38
metatype.name.Canvas_1000=Undefined
39
metatype.name.Compartment_2001=Compartment
40
metatype.name.Node_2002=Node
41
metatype.name.Connection_2003=Connection
42
metatype.name.FigureGallery_2004=FigureGallery
43
metatype.name.Rectangle_3001=Rectangle
44
metatype.name.Rectangle_3002=Rectangle
45
metatype.name.Ellipse_3003=Ellipse
46
metatype.name.RoundedRectangle_3004=RoundedRectangle
47
metatype.name.Polyline_3005=Polyline
48
metatype.name.Ellipse_3006=Ellipse
49
metatype.name.RoundedRectangle_3007=RoundedRectangle
50
metatype.name.Polyline_3008=Polyline
51
metatype.name.DiagramElementFigure_4001=Undefined
52
(-)icons/linkSourceNavigatorGroup.gif (+5 lines)
Added Link Here
1
GIF89aÕÿÿ­r/‚Gø؈žf'øÐxøà˜øЀf>2èƔøè°èЈøðÈÿÿÿË6úöºøà øØ?Œ]Føè˜Ò«€üößãϹ´2àÀx­r+ðØ?¥l$yO@ž_­l$?R¼2ïßƼ…2Å6!ù,s@€pH,?È#âèh:‚¨T0ô4®
2
‹à‘?p©€Ñd¢Y`B‚¡‹p8G AØ%‚%HÁçW¶	_B†‰Š‹?’“’š??–B¥¦¥ B­®­©C³´µI·¸FA;Content-Type: image/gif
3
4
GIF89aÕÿÿ­r/‚Gø؈žf'øÐxøà˜øЀf>2èƔøè°èЈøðÈÿÿÿË6úöºøà øØ?Œ]Føè˜Ò«€üößãϹ´2àÀx­r+ðØ?¥l$yO@ž_­l$?R¼2ïßƼ…2Å6!ù,s@€pH,?È#âèh:‚¨T0ô4®
5
‹à‘?p©€Ñd¢Y`B‚¡‹p8G AØ%‚%HÁçW¶	_B†‰Š‹?’“’š??–B¥¦¥ B­®­©C³´µI·¸FA;
(-)src/org/eclipse/gmf/graphdef/editor/sheet/GMFGraphPropertySection.java (+320 lines)
Added Link Here
1
/*
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.sheet;
12
13
import java.util.ArrayList;
14
import java.util.Collection;
15
import java.util.Iterator;
16
import java.util.LinkedList;
17
import java.util.List;
18
19
import org.eclipse.core.runtime.IAdaptable;
20
import org.eclipse.emf.common.notify.AdapterFactory;
21
import org.eclipse.emf.ecore.EClass;
22
import org.eclipse.emf.ecore.EObject;
23
import org.eclipse.emf.ecore.EStructuralFeature;
24
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
25
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
26
import org.eclipse.emf.edit.provider.IItemPropertySource;
27
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
28
import org.eclipse.emf.edit.ui.provider.PropertySource;
29
import org.eclipse.emf.transaction.TransactionalEditingDomain;
30
import org.eclipse.emf.transaction.util.TransactionUtil;
31
import org.eclipse.gef.EditPart;
32
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
33
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
34
import org.eclipse.gmf.gmfgraph.Layoutable;
35
import org.eclipse.gmf.gmfgraph.Point;
36
import org.eclipse.gmf.gmfgraph.Polyline;
37
import org.eclipse.gmf.gmfgraph.XYLayoutData;
38
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
39
import org.eclipse.gmf.runtime.common.ui.services.properties.ICompositePropertySource;
40
import org.eclipse.gmf.runtime.common.ui.services.properties.descriptors.CompositePropertySource;
41
import org.eclipse.gmf.runtime.diagram.ui.properties.sections.AdvancedPropertySection;
42
import org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositePropertySource;
43
import org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositeSourcePropertyDescriptor;
44
import org.eclipse.gmf.runtime.notation.View;
45
import org.eclipse.jface.viewers.ISelection;
46
import org.eclipse.jface.viewers.StructuredSelection;
47
import org.eclipse.ui.IWorkbenchPart;
48
import org.eclipse.ui.views.properties.IPropertyDescriptor;
49
import org.eclipse.ui.views.properties.IPropertySource;
50
import org.eclipse.ui.views.properties.IPropertySourceProvider;
51
52
/**
53
 * @generated
54
 */
55
public class GMFGraphPropertySection extends AdvancedPropertySection implements IPropertySourceProvider {
56
57
	/**
58
	 * @generated
59
	 */
60
	public IPropertySource getPropertySource(Object object) {
61
		if (object instanceof Layoutable) {
62
			CompositePropertySource compositeSource = new CompositePropertySource(object);
63
64
			compositeSource.addPropertySource(adaptToOldCompositePropertySource(object));
65
66
			IItemPropertyDescriptor layoutPropertyDescriptor = new ChildMetaclassItemPropertyDescriptor(GMFGraphDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory(), "Layout Manager",
67
					"Layout Manager", GMFGraphPackage.eINSTANCE.getLayoutable_Layout(), true, new EObject[] { GMFGraphFactory.eINSTANCE.createBorderLayout(),
68
							GMFGraphFactory.eINSTANCE.createCustomLayout(), GMFGraphFactory.eINSTANCE.createFlowLayout(), GMFGraphFactory.eINSTANCE.createGridLayout(),
69
							GMFGraphFactory.eINSTANCE.createStackLayout(), GMFGraphFactory.eINSTANCE.createXYLayout() });
70
			compositeSource.addPropertySource(new EMFCompositePropertySource(object, new SingleDescriptorPropertySource(layoutPropertyDescriptor), "EMF")); //$NON-NLS-1$
71
72
			IItemPropertyDescriptor layoutDataPropertyDescriptor = new ChildMetaclassItemPropertyDescriptor(GMFGraphDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory(), "Layout Data",
73
					"Layout Data", GMFGraphPackage.eINSTANCE.getLayoutable_LayoutData(), true, new EObject[] { GMFGraphFactory.eINSTANCE.createBorderLayoutData(),
74
							GMFGraphFactory.eINSTANCE.createCustomLayoutData(), GMFGraphFactory.eINSTANCE.createGridLayoutData(), GMFGraphFactory.eINSTANCE.createXYLayoutData() });
75
			compositeSource.addPropertySource(new EMFCompositePropertySource(object, new SingleDescriptorPropertySource(layoutDataPropertyDescriptor), "EMF")); //$NON-NLS-1$
76
77
			if (object instanceof Polyline) {
78
				int counter = 1;
79
				for (Iterator it = ((Polyline) object).getTemplate().iterator(); it.hasNext(); counter++) {
80
					Point nextPoint = (Point) it.next();
81
					final String titleX = "Point " + counter + " X";
82
					IItemPropertyDescriptor nextPointPropertyDescriptorX = new ItemPropertyDescriptor(GMFGraphDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory(), titleX, titleX,
83
							GMFGraphPackage.eINSTANCE.getPoint_X(), true, "Template");
84
					compositeSource.addPropertySource(new EMFCompositePropertySource(nextPoint, new SingleDescriptorPropertySource(nextPointPropertyDescriptorX), "EMF") {
85
86
						protected IPropertyDescriptor newPropertyDescriptor(IItemPropertyDescriptor itemPropertyDescriptor) {
87
							return new EMFCompositeSourcePropertyDescriptor(object, itemPropertyDescriptor, getCategory()) {
88
89
								public Object getId() {
90
									return titleX;
91
								}
92
							};
93
						}
94
					});
95
96
					final String titleY = "Point " + counter + " Y";
97
					IItemPropertyDescriptor nextPointPropertyDescriptorY = new ItemPropertyDescriptor(GMFGraphDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory(), titleY, titleY,
98
							GMFGraphPackage.eINSTANCE.getPoint_Y(), true, "Template");
99
					compositeSource.addPropertySource(new EMFCompositePropertySource(nextPoint, new SingleDescriptorPropertySource(nextPointPropertyDescriptorY), "EMF") {
100
101
						protected IPropertyDescriptor newPropertyDescriptor(IItemPropertyDescriptor itemPropertyDescriptor) {
102
							return new EMFCompositeSourcePropertyDescriptor(object, itemPropertyDescriptor, getCategory()) {
103
104
								public Object getId() {
105
									return titleY;
106
								}
107
							};
108
						}
109
					});
110
				}
111
			}
112
113
			return compositeSource;
114
		}
115
		if (object instanceof IPropertySource) {
116
			return (IPropertySource) object;
117
		}
118
		AdapterFactory af = getAdapterFactory(object);
119
		if (af != null) {
120
			IItemPropertySource ips = (IItemPropertySource) af.adapt(object, IItemPropertySource.class);
121
			if (ips != null) {
122
				return new PropertySource(object, ips);
123
			}
124
		}
125
		if (object instanceof IAdaptable) {
126
			return (IPropertySource) ((IAdaptable) object).getAdapter(IPropertySource.class);
127
		}
128
		return null;
129
	}
130
131
	/**
132
	 * @generated
133
	 */
134
	protected IPropertySourceProvider getPropertySourceProvider() {
135
		return this;
136
	}
137
138
	/**
139
	 * Modify/unwrap selection.
140
	 * @generated
141
	 */
142
	protected Object transformSelection(Object selected) {
143
		if (selected instanceof EditPart) {
144
			Object model = ((EditPart) selected).getModel();
145
			return model instanceof View ? ((View) model).getElement() : null;
146
		}
147
		if (selected instanceof View) {
148
			return ((View) selected).getElement();
149
		}
150
		if (selected instanceof IAdaptable) {
151
			View view = (View) ((IAdaptable) selected).getAdapter(View.class);
152
			if (view != null) {
153
				return view.getElement();
154
			}
155
		}
156
		return selected;
157
	}
158
159
	/**
160
	 * @generated
161
	 */
162
	public void setInput(IWorkbenchPart part, ISelection selection) {
163
		if (selection.isEmpty() || false == selection instanceof StructuredSelection) {
164
			super.setInput(part, selection);
165
			return;
166
		}
167
		final StructuredSelection structuredSelection = ((StructuredSelection) selection);
168
		ArrayList transformedSelection = new ArrayList(structuredSelection.size());
169
		for (Iterator it = structuredSelection.iterator(); it.hasNext();) {
170
			Object r = transformSelection(it.next());
171
			if (r != null) {
172
				transformedSelection.add(r);
173
			}
174
		}
175
		super.setInput(part, new StructuredSelection(transformedSelection));
176
	}
177
178
	/**
179
	 * @generated
180
	 */
181
	protected AdapterFactory getAdapterFactory(Object object) {
182
		if (getEditingDomain() instanceof AdapterFactoryEditingDomain) {
183
			return ((AdapterFactoryEditingDomain) getEditingDomain()).getAdapterFactory();
184
		}
185
		TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(object);
186
		if (editingDomain != null) {
187
			return ((AdapterFactoryEditingDomain) editingDomain).getAdapterFactory();
188
		}
189
		return null;
190
	}
191
192
	/**
193
	 * @generated
194
	 */
195
	private ICompositePropertySource adaptToOldCompositePropertySource(Object object) {
196
		if (object instanceof ICompositePropertySource) {
197
			return (ICompositePropertySource) object;
198
		}
199
		AdapterFactory af = getAdapterFactory(object);
200
		if (af != null) {
201
			IItemPropertySource ips = (IItemPropertySource) af.adapt(object, IItemPropertySource.class);
202
			if (ips != null) {
203
				return new EMFCompositePropertySource(object, ips, "EMF");
204
			}
205
		}
206
		if (object instanceof IAdaptable) {
207
			return (ICompositePropertySource) ((IAdaptable) object).getAdapter(ICompositePropertySource.class);
208
		}
209
		return null;
210
	}
211
212
	/**
213
	 * @generated
214
	 */
215
	public static class SingleDescriptorPropertySource implements IItemPropertySource {
216
217
		/**
218
		 * @generated
219
		 */
220
		private IItemPropertyDescriptor myPropertyDescriptor;
221
222
		/**
223
		 * @generated
224
		 */
225
		private List myDescriptors = new LinkedList();
226
227
		/**
228
		 * @generated
229
		 */
230
		SingleDescriptorPropertySource(IItemPropertyDescriptor propertyDescriptor) {
231
			myPropertyDescriptor = propertyDescriptor;
232
			myDescriptors.add(myPropertyDescriptor);
233
		}
234
235
		/**
236
		 * @generated
237
		 */
238
		public List getPropertyDescriptors(Object object) {
239
			return myDescriptors;
240
		}
241
242
		/**
243
		 * @generated
244
		 */
245
		public IItemPropertyDescriptor getPropertyDescriptor(Object object, Object propertyID) {
246
			return myPropertyDescriptor;
247
		}
248
249
		/**
250
		 * @generated
251
		 */
252
		public Object getEditableValue(Object object) {
253
			return object;
254
		}
255
	}
256
257
	/**
258
	 * @generated
259
	 */
260
	public static class ChildMetaclassItemPropertyDescriptor extends ItemPropertyDescriptor {
261
262
		/**
263
		 * @generated
264
		 */
265
		private EObject[] myValues;
266
267
		/**
268
		 * @generated
269
		 */
270
		ChildMetaclassItemPropertyDescriptor(AdapterFactory adapterFactory, String displayName, String description, EStructuralFeature feature, boolean isSettable, EObject[] valueInstances) {
271
			super(adapterFactory, displayName, description, feature, isSettable);
272
			myValues = valueInstances;
273
		}
274
275
		/**
276
		 * @generated
277
		 */
278
		protected Collection getComboBoxObjects(Object object) {
279
			if (object instanceof EObject) {
280
				EObject eObject = (EObject) object;
281
				Object currentValue = getValue(eObject, feature);
282
				Collection result = new ArrayList();
283
				result.add(currentValue);
284
				EClass valueEClass = currentValue instanceof EObject ? ((EObject) currentValue).eClass() : null;
285
				for (int i = 0; i < myValues.length; i++) {
286
					if (myValues[i].eClass() == valueEClass) {
287
						continue;
288
					}
289
					result.add(myValues[i]);
290
				}
291
				if (currentValue != null) {
292
					result.add(null);
293
				}
294
				return result;
295
			}
296
			return null;
297
		}
298
299
		/**
300
		 * @generated
301
		 */
302
		public void setPropertyValue(Object object, Object value) {
303
			if (value instanceof EObject) {
304
				EClass eClass = ((EObject) value).eClass();
305
				value = eClass.getEPackage().getEFactoryInstance().create(eClass);
306
				if (value instanceof XYLayoutData) {
307
					XYLayoutData xyLayoutData = (XYLayoutData) value;
308
					xyLayoutData.setTopLeft(GMFGraphFactory.eINSTANCE.createPoint());
309
					xyLayoutData.getTopLeft().setX(0);
310
					xyLayoutData.getTopLeft().setY(0);
311
					xyLayoutData.setSize(GMFGraphFactory.eINSTANCE.createDimension());
312
					xyLayoutData.getSize().setDx(40);
313
					xyLayoutData.getSize().setDy(40);
314
				}
315
			}
316
			super.setPropertyValue(object, value);
317
		}
318
	}
319
320
}
(-)src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphNavigatorLinkHelper.java (+94 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.navigator;
12
13
import org.eclipse.core.runtime.IAdaptable;
14
15
import org.eclipse.emf.ecore.EObject;
16
17
import org.eclipse.emf.ecore.resource.Resource;
18
19
import org.eclipse.gef.EditPart;
20
21
import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor;
22
import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditorInput;
23
24
import org.eclipse.gmf.runtime.notation.View;
25
26
import org.eclipse.jface.viewers.IStructuredSelection;
27
import org.eclipse.jface.viewers.StructuredSelection;
28
29
import org.eclipse.ui.IEditorInput;
30
import org.eclipse.ui.IEditorPart;
31
import org.eclipse.ui.IWorkbenchPage;
32
33
import org.eclipse.ui.navigator.ILinkHelper;
34
35
/**
36
 * @generated
37
 */
38
public class GMFGraphNavigatorLinkHelper implements ILinkHelper {
39
40
	/**
41
	 * @generated
42
	 */
43
	public IStructuredSelection findSelection(IEditorInput anInput) {
44
		return StructuredSelection.EMPTY;
45
	}
46
47
	/**
48
	 * @generated
49
	 */
50
	public void activateEditor(IWorkbenchPage aPage, IStructuredSelection aSelection) {
51
		if (aSelection == null || aSelection.isEmpty()) {
52
			return;
53
		}
54
		if (false == aSelection.getFirstElement() instanceof GMFGraphAbstractNavigatorItem) {
55
			return;
56
		}
57
58
		GMFGraphAbstractNavigatorItem navigatorItem = (GMFGraphAbstractNavigatorItem) aSelection.getFirstElement();
59
		View navigatorView = null;
60
		if (navigatorItem instanceof GMFGraphNavigatorItem) {
61
			navigatorView = ((GMFGraphNavigatorItem) navigatorItem).getView();
62
		} else if (navigatorItem instanceof GMFGraphNavigatorGroup) {
63
			GMFGraphNavigatorGroup group = (GMFGraphNavigatorGroup) navigatorItem;
64
			if (group.getParent() instanceof GMFGraphNavigatorItem) {
65
				navigatorView = ((GMFGraphNavigatorItem) group.getParent()).getView();
66
			} else if (group.getParent() instanceof IAdaptable) {
67
				navigatorView = (View) ((IAdaptable) group.getParent()).getAdapter(View.class);
68
			}
69
		}
70
		if (navigatorView == null) {
71
			return;
72
		}
73
		DiagramEditorInput editorInput = new DiagramEditorInput(navigatorView.getDiagram());
74
		IEditorPart editor = aPage.findEditor(editorInput);
75
		if (editor == null) {
76
			return;
77
		}
78
		aPage.bringToTop(editor);
79
		if (editor instanceof DiagramEditor) {
80
			DiagramEditor diagramEditor = (DiagramEditor) editor;
81
			Resource diagramResource = diagramEditor.getDiagram().eResource();
82
83
			EObject selectedView = diagramResource.getEObject(navigatorView.eResource().getURIFragment(navigatorView));
84
			if (selectedView == null) {
85
				return;
86
			}
87
			EditPart selectedEditPart = (EditPart) diagramEditor.getDiagramGraphicalViewer().getEditPartRegistry().get(selectedView);
88
			if (selectedEditPart != null) {
89
				diagramEditor.getDiagramGraphicalViewer().select(selectedEditPart);
90
			}
91
		}
92
	}
93
94
}
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphShortcutPropertyTester.java (+48 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.part;
12
13
import org.eclipse.core.expressions.PropertyTester;
14
15
import org.eclipse.emf.ecore.EAnnotation;
16
17
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
18
19
import org.eclipse.gmf.runtime.notation.View;
20
21
/**
22
 * @generated
23
 */
24
public class GMFGraphShortcutPropertyTester extends PropertyTester {
25
26
	/**
27
	 * @generated
28
	 */
29
	protected static final String SHORTCUT_PROPERTY = "isShortcut"; //$NON-NLS-1$
30
31
	/**
32
	 * @generated
33
	 */
34
	public boolean test(Object receiver, String method, Object[] args, Object expectedValue) {
35
		if (false == receiver instanceof View) {
36
			return false;
37
		}
38
		View view = (View) receiver;
39
		if (SHORTCUT_PROPERTY.equals(method)) {
40
			EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
41
			if (annotation != null) {
42
				return CanvasEditPart.MODEL_ID.equals(annotation.getDetails().get("modelID")); //$NON-NLS-1$
43
			}
44
		}
45
		return false;
46
	}
47
48
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/commands/FigureGalleryCreateCommand.java (+54 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.commands;
12
13
import org.eclipse.emf.ecore.EClass;
14
import org.eclipse.emf.ecore.EObject;
15
16
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
17
18
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
19
20
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
21
22
import org.eclipse.gmf.runtime.notation.View;
23
24
/**
25
 * @generated
26
 */
27
public class FigureGalleryCreateCommand extends CreateElementCommand {
28
29
	/**
30
	 * @generated
31
	 */
32
	public FigureGalleryCreateCommand(CreateElementRequest req) {
33
		super(req);
34
	}
35
36
	/**
37
	 * @generated
38
	 */
39
	protected EClass getEClassToEdit() {
40
		return GMFGraphPackage.eINSTANCE.getCanvas();
41
	};
42
43
	/**
44
	 * @generated
45
	 */
46
	protected EObject getElementToEdit() {
47
		EObject container = ((CreateElementRequest) getRequest()).getContainer();
48
		if (container instanceof View) {
49
			container = ((View) container).getElement();
50
		}
51
		return container;
52
	}
53
54
}
(-)src/org/eclipse/gmf/graphdef/editor/sheet/GMFGraphSheetLabelProvider.java (+89 lines)
Added Link Here
1
/*
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.sheet;
12
13
import org.eclipse.core.runtime.IAdaptable;
14
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
15
import org.eclipse.gef.EditPart;
16
import org.eclipse.gmf.graphdef.editor.navigator.GMFGraphNavigatorGroup;
17
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
18
import org.eclipse.gmf.runtime.notation.View;
19
import org.eclipse.jface.viewers.DecoratingLabelProvider;
20
import org.eclipse.jface.viewers.IStructuredSelection;
21
import org.eclipse.swt.graphics.Image;
22
23
/**
24
 * @generated
25
 */
26
public class GMFGraphSheetLabelProvider extends DecoratingLabelProvider {
27
28
	/**
29
	 * @generated
30
	 */
31
	public GMFGraphSheetLabelProvider() {
32
		super(new AdapterFactoryLabelProvider(GMFGraphDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory()), null);
33
	}
34
35
	/**
36
	 * @generated
37
	 */
38
	public String getText(Object element) {
39
		Object selected = unwrap(element);
40
		if (selected instanceof GMFGraphNavigatorGroup) {
41
			return ((GMFGraphNavigatorGroup) selected).getGroupName();
42
		}
43
		return super.getText(selected);
44
	}
45
46
	/**
47
	 * @generated
48
	 */
49
	public Image getImage(Object element) {
50
		return super.getImage(unwrap(element));
51
	}
52
53
	/**
54
	 * @generated
55
	 */
56
	private Object unwrap(Object element) {
57
		if (element instanceof IStructuredSelection) {
58
			return unwrap(((IStructuredSelection) element).getFirstElement());
59
		}
60
		if (element instanceof EditPart) {
61
			return unwrapEditPart((EditPart) element);
62
		}
63
		if (element instanceof IAdaptable) {
64
			View view = (View) ((IAdaptable) element).getAdapter(View.class);
65
			if (view != null) {
66
				return unwrapView(view);
67
			}
68
		}
69
		return element;
70
	}
71
72
	/**
73
	 * @generated
74
	 */
75
	private Object unwrapEditPart(EditPart p) {
76
		if (p.getModel() instanceof View) {
77
			return unwrapView((View) p.getModel());
78
		}
79
		return p.getModel();
80
	}
81
82
	/**
83
	 * @generated
84
	 */
85
	private Object unwrapView(View view) {
86
		return view.getElement() == null ? view : view.getElement();
87
	}
88
89
}
(-)src/org/eclipse/gmf/graphdef/editor/part/URIDiagramDocumentProvider.java (+352 lines)
Added Link Here
1
/*
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.part;
12
13
import java.io.File;
14
import java.io.IOException;
15
import java.util.HashMap;
16
import java.util.Iterator;
17
import java.util.List;
18
import java.util.Map;
19
20
import org.eclipse.core.runtime.CoreException;
21
import org.eclipse.core.runtime.IProgressMonitor;
22
import org.eclipse.core.runtime.IStatus;
23
import org.eclipse.core.runtime.Status;
24
import org.eclipse.emf.common.notify.Adapter;
25
import org.eclipse.emf.common.notify.Notification;
26
import org.eclipse.emf.common.notify.Notifier;
27
import org.eclipse.emf.common.ui.URIEditorInput;
28
import org.eclipse.emf.ecore.EObject;
29
import org.eclipse.emf.ecore.resource.Resource;
30
import org.eclipse.emf.ecore.resource.ResourceSet;
31
import org.eclipse.emf.ecore.xmi.XMLResource;
32
import org.eclipse.emf.transaction.NotificationFilter;
33
import org.eclipse.emf.transaction.TransactionalEditingDomain;
34
import org.eclipse.gmf.runtime.diagram.core.DiagramEditingDomainFactory;
35
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.AbstractDocumentProvider;
36
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.DiagramDocument;
37
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.DiagramModificationListener;
38
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument;
39
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocumentProvider;
40
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument;
41
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.internal.EditorStatusCodes;
42
import org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory;
43
import org.eclipse.gmf.runtime.notation.Diagram;
44
import org.eclipse.jface.operation.IRunnableContext;
45
import org.eclipse.ui.IEditorInput;
46
47
/**
48
 * @generated
49
 */
50
public class URIDiagramDocumentProvider extends AbstractDocumentProvider implements IDiagramDocumentProvider {
51
52
	/**
53
	 * @generated
54
	 */
55
	protected class URIElementInfo extends ElementInfo {
56
57
		/**
58
		 * @generated
59
		 */
60
		public DiagramModificationListener listener;
61
62
		/**
63
		 * @generated
64
		 */
65
		public URIElementInfo(IDocument document, DiagramModificationListener listener) {
66
			super(document);
67
			this.listener = listener;
68
		}
69
	}
70
71
	/**
72
	 * @generated
73
	 */
74
	protected ElementInfo createElementInfo(Object element) throws CoreException {
75
		if (element instanceof URIEditorInput) {
76
			IDocument document = null;
77
			IStatus status = null;
78
			try {
79
				document = createDocument(element);
80
			} catch (CoreException x) {
81
				GMFGraphDiagramEditorPlugin.getInstance().logError("Error creating document from uri", x);
82
				status = x.getStatus();
83
				document = createEmptyDocument();
84
			}
85
			ElementInfo info = createNewElementInfo(document);
86
			info.fStatus = status;
87
			return info;
88
		}
89
		return super.createElementInfo(element);
90
	}
91
92
	/**
93
	 * @generated
94
	 */
95
	public ElementInfo createNewElementInfo(IDocument document) {
96
		DiagramModificationListener listener = new DiagramModificationListener(this, (DiagramDocument) document);
97
		URIElementInfo info = new URIElementInfo(document, listener);
98
		listener.startListening();
99
		return info;
100
	}
101
102
	/**
103
	 * @generated
104
	 */
105
	protected void disposeElementInfo(Object element, ElementInfo info) {
106
		Object content = info.fDocument.getContent();
107
		if (content instanceof Diagram) {
108
			((Diagram) content).eResource().unload();
109
		}
110
		((URIElementInfo) info).listener.stopListening();
111
	}
112
113
	/**
114
	 * @generated
115
	 */
116
	public IEditorInput createInputWithEditingDomain(IEditorInput editorInput, TransactionalEditingDomain domain) {
117
		return editorInput;
118
	}
119
120
	/**
121
	 * @generated
122
	 */
123
	public IDiagramDocument getDiagramDocument(Object element) {
124
		IDocument doc = getDocument(element);
125
		if (doc instanceof IDiagramDocument) {
126
			return (IDiagramDocument) doc;
127
		}
128
		return null;
129
	}
130
131
	/**
132
	 * @generated
133
	 */
134
	protected IDocument createDocument(Object element) throws CoreException {
135
		if (element instanceof URIEditorInput) {
136
			IDocument document = createEmptyDocument();
137
			if (setDocumentContent(document, (IEditorInput) element)) {
138
				setupDocument(element, document);
139
				return document;
140
			}
141
		}
142
		return null;
143
	}
144
145
	/**
146
	 * Sets up the given document as it would be provided for the given element. The
147
	 * content of the document is not changed. This default implementation is empty.
148
	 * Subclasses may reimplement.
149
	 * 
150
	 * @param element the blue-print element
151
	 * @param document the document to set up
152
	 * @generated
153
	 */
154
	protected void setupDocument(Object element, IDocument document) {
155
		// for subclasses
156
	}
157
158
	/**
159
	 * @generated
160
	 */
161
	protected IDocument createEmptyDocument() {
162
		DiagramDocument document = new DiagramDocument();
163
		document.setEditingDomain(createEditingDomain());
164
		return document;
165
	}
166
167
	private TransactionalEditingDomain createEditingDomain() {
168
		TransactionalEditingDomain editingDomain = DiagramEditingDomainFactory.getInstance().createEditingDomain();
169
		editingDomain.setID("org.eclipse.gmf.graphdef.editor.EditingDomain"); //$NON-NLS-1$
170
		final NotificationFilter diagramResourceModifiedFilter = NotificationFilter.createNotifierFilter(editingDomain.getResourceSet())
171
				.and(NotificationFilter.createEventTypeFilter(Notification.ADD)).and(NotificationFilter.createFeatureFilter(ResourceSet.class, ResourceSet.RESOURCE_SET__RESOURCES));
172
		editingDomain.getResourceSet().eAdapters().add(new Adapter() {
173
174
			private Notifier myTarger;
175
176
			public Notifier getTarget() {
177
				return myTarger;
178
			}
179
180
			public boolean isAdapterForType(Object type) {
181
				return false;
182
			}
183
184
			public void notifyChanged(Notification notification) {
185
				if (diagramResourceModifiedFilter.matches(notification)) {
186
					Object value = notification.getNewValue();
187
					if (value instanceof Resource) {
188
						((Resource) value).setTrackingModification(true);
189
					}
190
				}
191
			}
192
193
			public void setTarget(Notifier newTarget) {
194
				myTarger = newTarget;
195
			}
196
197
		});
198
199
		return editingDomain;
200
	}
201
202
	/**
203
	 * @generated
204
	 */
205
	protected boolean setDocumentContent(IDocument document, IEditorInput editorInput) throws CoreException {
206
		if (editorInput instanceof URIEditorInput) {
207
			setDocumentContentFromStorage(document, ((URIEditorInput) editorInput).getURI());
208
			return true;
209
		}
210
		return false;
211
	}
212
213
	/**
214
	 * @generated
215
	 */
216
	protected void setDocumentContentFromStorage(IDocument document, org.eclipse.emf.common.util.URI uri) throws CoreException {
217
		IDiagramDocument diagramDocument = (IDiagramDocument) document;
218
		TransactionalEditingDomain domain = diagramDocument.getEditingDomain();
219
		Resource resource = null;
220
		try {
221
			resource = domain.getResourceSet().getResource(uri.trimFragment(), false);
222
			if (resource == null) {
223
				resource = domain.getResourceSet().createResource(uri.trimFragment());
224
			}
225
			if (!resource.isLoaded()) {
226
				try {
227
					Map options = new HashMap(GMFResourceFactory.getDefaultLoadOptions());
228
					// @see 171060 
229
					// options.put(org.eclipse.emf.ecore.xmi.XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.TRUE);
230
					resource.load(options);
231
				} catch (IOException e) {
232
					resource.unload();
233
					throw e;
234
				}
235
			}
236
			if (resource == null) {
237
				throw new RuntimeException("Unable to load diagram resource");
238
			}
239
			if (uri.fragment() != null) {
240
				EObject rootElement = resource.getEObject(uri.fragment());
241
				if (rootElement instanceof Diagram) {
242
					document.setContent((Diagram) rootElement);
243
					return;
244
				}
245
			} else {
246
				for (Iterator it = resource.getContents().iterator(); it.hasNext();) {
247
					Object rootElement = it.next();
248
					if (rootElement instanceof Diagram) {
249
						document.setContent((Diagram) rootElement);
250
						return;
251
					}
252
				}
253
			}
254
			throw new RuntimeException("Diagram is not present in resource");
255
		} catch (Exception e) {
256
			CoreException thrownExcp = null;
257
			if (e instanceof CoreException) {
258
				thrownExcp = (CoreException) e;
259
			} else {
260
				String msg = e.getLocalizedMessage();
261
				thrownExcp = new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0, msg != null ? msg : "Error loading diagram", e)); //$NON-NLS-1$
262
			}
263
			throw thrownExcp;
264
		}
265
	}
266
267
	/**
268
	 * @generated
269
	 */
270
	protected void doSaveDocument(IProgressMonitor monitor, Object element, IDocument document, boolean overwrite) throws CoreException {
271
		if (element instanceof URIEditorInput) {
272
			IDiagramDocument diagramDocument = (IDiagramDocument) document;
273
			TransactionalEditingDomain domain = diagramDocument.getEditingDomain();
274
			List resources = domain.getResourceSet().getResources();
275
			monitor.beginTask("Saving diagram", resources.size() + 1);
276
			Map options = new HashMap();
277
			options.put(XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.TRUE);
278
			for (Iterator it = resources.iterator(); it.hasNext();) {
279
				Resource nextResource = (Resource) it.next();
280
				monitor.setTaskName("Saving " + nextResource.getURI());
281
				if (nextResource.isLoaded() && (!nextResource.isTrackingModification() || nextResource.isModified())) {
282
					try {
283
						nextResource.save(options);
284
					} catch (IOException e) {
285
						fireElementStateChangeFailed(element);
286
						throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, EditorStatusCodes.RESOURCE_FAILURE, e.getLocalizedMessage(), null));
287
					}
288
				}
289
				monitor.worked(1);
290
			}
291
			monitor.done();
292
		}
293
	}
294
295
	/**
296
	 * @generated
297
	 */
298
	public boolean isDeleted(Object element) {
299
		if (element instanceof URIEditorInput) {
300
			File file = getFile((URIEditorInput) element);
301
			return file != null && !file.exists();
302
		}
303
		return false;
304
	}
305
306
	/**
307
	 * @generated
308
	 */
309
	public boolean isReadOnly(Object element) {
310
		if (element instanceof URIEditorInput) {
311
			File file = getFile((URIEditorInput) element);
312
			if (file != null && file.exists()) {
313
				return !file.canWrite();
314
			}
315
		}
316
		return false;
317
	}
318
319
	/**
320
	 * @generated
321
	 */
322
	public boolean isModifiable(Object element) {
323
		if (element instanceof URIEditorInput) {
324
			File file = getFile((URIEditorInput) element);
325
			if (file != null && file.exists()) {
326
				return file.canWrite();
327
			}
328
		}
329
		return true;
330
	}
331
332
	/**
333
	 * @generated
334
	 */
335
	public static File getFile(URIEditorInput input) {
336
		org.eclipse.emf.common.util.URI uri = input.getURI().trimFragment();
337
		if (uri != null && uri.isFile()) {
338
			File file = new File(uri.toFileString());
339
			if (!file.isDirectory()) {
340
				return file;
341
			}
342
		}
343
		return null;
344
	}
345
346
	/**
347
	 * @generated
348
	 */
349
	protected IRunnableContext getOperationRunner(IProgressMonitor monitor) {
350
		return null;
351
	}
352
}
(-)icons/linksNavigatorGroup.gif (+5 lines)
Added Link Here
1
GIF89aÕÿÿ­r/‚Gø؈žf'øÐxøà˜øЀf>2èƔøè°èЈøðÈÿÿÿË6úöºøà øØ?Œ]Føè˜Ò«€üößãϹ´2àÀx­r+ðØ?¥l$yO@ž_­l$?R¼2ïßƼ…2Å6!ù,s@€pH,?È#âèh:‚¨T0ô4®
2
‹à‘?p©€Ñd¢Y`B‚¡‹p8G AØ%‚%HÁçW¶	_B†‰Š‹?’“’š??–B¥¦¥ B­®­©C³´µI·¸FA;Content-Type: image/gif
3
4
GIF89aÕÿÿ­r/‚Gø؈žf'øÐxøà˜øЀf>2èƔøè°èЈøðÈÿÿÿË6úöºøà øØ?Œ]Føè˜Ò«€üößãϹ´2àÀx­r+ðØ?¥l$yO@ž_­l$?R¼2ïßƼ…2Å6!ù,s@€pH,?È#âèh:‚¨T0ô4®
5
‹à‘?p©€Ñd¢Y`B‚¡‹p8G AØ%‚%HÁçW¶	_B†‰Š‹?’“’š??–B¥¦¥ B­®­©C³´µI·¸FA;
(-)src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphNavigatorGroup.java (+100 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.navigator;
12
13
import java.util.Collection;
14
import java.util.LinkedList;
15
16
/**
17
 * @generated
18
 */
19
public class GMFGraphNavigatorGroup extends GMFGraphAbstractNavigatorItem {
20
21
	/**
22
	 * @generated
23
	 */
24
	private String myGroupName;
25
26
	/**
27
	 * @generated
28
	 */
29
	private String myIcon;
30
31
	/**
32
	 * @generated
33
	 */
34
	private Collection myChildren = new LinkedList();
35
36
	/**
37
	 * @generated
38
	 */
39
	GMFGraphNavigatorGroup(String groupName, String icon, Object parent) {
40
		super(parent);
41
		myGroupName = groupName;
42
		myIcon = icon;
43
	}
44
45
	/**
46
	 * @generated
47
	 */
48
	public String getGroupName() {
49
		return myGroupName;
50
	}
51
52
	/**
53
	 * @generated
54
	 */
55
	public String getIcon() {
56
		return myIcon;
57
	}
58
59
	/**
60
	 * @generated
61
	 */
62
	public Object[] getChildren() {
63
		return myChildren.toArray();
64
	}
65
66
	/**
67
	 * @generated
68
	 */
69
	public void addChildren(Collection children) {
70
		myChildren.addAll(children);
71
	}
72
73
	/**
74
	 * @generated
75
	 */
76
	public void addChild(Object child) {
77
		myChildren.add(child);
78
	}
79
80
	/**
81
	 * @generated
82
	 */
83
	public boolean isEmpty() {
84
		return myChildren.size() == 0;
85
	}
86
87
	/**
88
	 * @generated
89
	 */
90
	public boolean equals(Object obj) {
91
		if (obj instanceof GMFGraphNavigatorGroup) {
92
			GMFGraphNavigatorGroup anotherGroup = (GMFGraphNavigatorGroup) obj;
93
			if (getGroupName().equals(anotherGroup.getGroupName())) {
94
				return getParent().equals(anotherGroup.getParent());
95
			}
96
		}
97
		return super.equals(obj);
98
	}
99
100
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/commands/Polyline2CreateCommand.java (+54 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.commands;
12
13
import org.eclipse.emf.ecore.EClass;
14
import org.eclipse.emf.ecore.EObject;
15
16
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
17
18
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
19
20
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
21
22
import org.eclipse.gmf.runtime.notation.View;
23
24
/**
25
 * @generated
26
 */
27
public class Polyline2CreateCommand extends CreateElementCommand {
28
29
	/**
30
	 * @generated
31
	 */
32
	public Polyline2CreateCommand(CreateElementRequest req) {
33
		super(req);
34
	}
35
36
	/**
37
	 * @generated
38
	 */
39
	protected EClass getEClassToEdit() {
40
		return GMFGraphPackage.eINSTANCE.getFigureGallery();
41
	};
42
43
	/**
44
	 * @generated
45
	 */
46
	protected EObject getElementToEdit() {
47
		EObject container = ((CreateElementRequest) getRequest()).getContainer();
48
		if (container instanceof View) {
49
			container = ((View) container).getElement();
50
		}
51
		return container;
52
	}
53
54
}
(-)src/org/eclipse/gmf/graphdef/editor/preferences/DiagramGeneralPreferencePage.java (+27 lines)
Added Link Here
1
/*
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.preferences;
12
13
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
14
import org.eclipse.gmf.runtime.diagram.ui.preferences.DiagramsPreferencePage;
15
16
/**
17
 * @generated
18
 */
19
public class DiagramGeneralPreferencePage extends DiagramsPreferencePage {
20
21
	/**
22
	 * @generated
23
	 */
24
	public DiagramGeneralPreferencePage() {
25
		setPreferenceStore(GMFGraphDiagramEditorPlugin.getInstance().getPreferenceStore());
26
	}
27
}
(-)src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphNavigatorSorter.java (+46 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.navigator;
12
13
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
14
15
import org.eclipse.jface.viewers.ViewerSorter;
16
17
/**
18
 * @generated
19
 */
20
public class GMFGraphNavigatorSorter extends ViewerSorter {
21
22
	/**
23
	 * @generated
24
	 */
25
	private static final int GROUP_CATEGORY = 7006;
26
27
	/**
28
	 * @generated
29
	 */
30
	private static final int SHORTCUTS_CATEGORY = 7004;
31
32
	/**
33
	 * @generated
34
	 */
35
	public int category(Object element) {
36
		if (element instanceof GMFGraphNavigatorItem) {
37
			GMFGraphNavigatorItem item = (GMFGraphNavigatorItem) element;
38
			if (item.getView().getEAnnotation("Shortcut") != null) { //$NON-NLS-1$
39
				return SHORTCUTS_CATEGORY;
40
			}
41
			return GMFGraphVisualIDRegistry.getVisualID(item.getView());
42
		}
43
		return GROUP_CATEGORY;
44
	}
45
46
}
(-)src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphNavigatorItem.java (+97 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.navigator;
12
13
import org.eclipse.core.runtime.IAdapterFactory;
14
import org.eclipse.core.runtime.Platform;
15
16
import org.eclipse.emf.ecore.EObject;
17
18
import org.eclipse.gmf.runtime.notation.View;
19
20
/**
21
 * @generated
22
 */
23
public class GMFGraphNavigatorItem extends GMFGraphAbstractNavigatorItem {
24
25
	/**
26
	 * @generated
27
	 */
28
	static {
29
		final Class[] supportedTypes = new Class[] { View.class, EObject.class };
30
		Platform.getAdapterManager().registerAdapters(new IAdapterFactory() {
31
32
			public Object getAdapter(Object adaptableObject, Class adapterType) {
33
				if (adaptableObject instanceof GMFGraphNavigatorItem && (adapterType == View.class || adapterType == EObject.class)) {
34
					return ((GMFGraphNavigatorItem) adaptableObject).getView();
35
				}
36
				return null;
37
			}
38
39
			public Class[] getAdapterList() {
40
				return supportedTypes;
41
			}
42
		}, GMFGraphNavigatorItem.class);
43
	}
44
45
	/**
46
	 * @generated
47
	 */
48
	private View myView;
49
50
	/**
51
	 * @generated
52
	 */
53
	private boolean myLeaf = false;
54
55
	/**
56
	 * @generated
57
	 */
58
	public GMFGraphNavigatorItem(View view, Object parent, boolean isLeaf) {
59
		super(parent);
60
		myView = view;
61
		myLeaf = isLeaf;
62
	}
63
64
	/**
65
	 * @generated
66
	 */
67
	public View getView() {
68
		return myView;
69
	}
70
71
	/**
72
	 * @generated
73
	 */
74
	public boolean isLeaf() {
75
		return myLeaf;
76
	}
77
78
	/**
79
	 * @generated
80
	 */
81
	public boolean equals(Object obj) {
82
		if (obj instanceof GMFGraphNavigatorItem) {
83
			EObject eObject = getView().getElement();
84
			EObject anotherEObject = ((GMFGraphNavigatorItem) obj).getView().getElement();
85
			if (eObject == null) {
86
				return anotherEObject == null;
87
			} else if (anotherEObject == null) {
88
				return false;
89
			}
90
			if (eObject.eResource() != null) {
91
				return eObject.eResource().getURIFragment(eObject).equals(anotherEObject.eResource().getURIFragment(anotherEObject));
92
			}
93
		}
94
		return super.equals(obj);
95
	}
96
97
}
(-)src/org/eclipse/gmf/graphdef/editor/preferences/DiagramPreferenceInitializer.java (+40 lines)
Added Link Here
1
/*
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.preferences;
12
13
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
14
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
15
import org.eclipse.jface.preference.IPreferenceStore;
16
17
/**
18
 * @generated
19
 */
20
public class DiagramPreferenceInitializer extends AbstractPreferenceInitializer {
21
22
	/**
23
	 * @generated
24
	 */
25
	public void initializeDefaultPreferences() {
26
		IPreferenceStore store = getPreferenceStore();
27
		DiagramPrintingPreferencePage.initDefaults(store);
28
		DiagramGeneralPreferencePage.initDefaults(store);
29
		DiagramAppearancePreferencePage.initDefaults(store);
30
		DiagramConnectionsPreferencePage.initDefaults(store);
31
		DiagramRulersAndGridPreferencePage.initDefaults(store);
32
	}
33
34
	/**
35
	 * @generated
36
	 */
37
	protected IPreferenceStore getPreferenceStore() {
38
		return GMFGraphDiagramEditorPlugin.getInstance().getPreferenceStore();
39
	}
40
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/commands/RectangleCreateCommand.java (+54 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.commands;
12
13
import org.eclipse.emf.ecore.EClass;
14
import org.eclipse.emf.ecore.EObject;
15
16
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
17
18
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
19
20
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
21
22
import org.eclipse.gmf.runtime.notation.View;
23
24
/**
25
 * @generated
26
 */
27
public class RectangleCreateCommand extends CreateElementCommand {
28
29
	/**
30
	 * @generated
31
	 */
32
	public RectangleCreateCommand(CreateElementRequest req) {
33
		super(req);
34
	}
35
36
	/**
37
	 * @generated
38
	 */
39
	protected EClass getEClassToEdit() {
40
		return GMFGraphPackage.eINSTANCE.getFigureGallery();
41
	};
42
43
	/**
44
	 * @generated
45
	 */
46
	protected EObject getElementToEdit() {
47
		EObject container = ((CreateElementRequest) getRequest()).getContainer();
48
		if (container instanceof View) {
49
			container = ((View) container).getElement();
50
		}
51
		return container;
52
	}
53
54
}
(-)src/org/eclipse/gmf/graphdef/editor/providers/ElementInitializers.java (+21 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.providers;
12
13
import org.eclipse.emf.ecore.EClass;
14
import org.eclipse.emf.ecore.EStructuralFeature;
15
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
16
17
/**
18
 * @generated
19
 */
20
public class ElementInitializers {
21
}
(-)icons/incomingLinksNavigatorGroup.gif (+5 lines)
Added Link Here
1
GIF89aÕÿÿ­r/‚Gø؈žf'øÐxøà˜øЀf>2èƔøè°èЈøðÈÿÿÿË6úöºøà øØ?Œ]Føè˜Ò«€üößãϹ´2àÀx­r+ðØ?¥l$yO@ž_­l$?R¼2ïßƼ…2Å6!ù,s@€pH,?È#âèh:‚¨T0ô4®
2
‹à‘?p©€Ñd¢Y`B‚¡‹p8G AØ%‚%HÁçW¶	_B†‰Š‹?’“’š??–B¥¦¥ B­®­©C³´µI·¸FA;Content-Type: image/gif
3
4
GIF89aÕÿÿ­r/‚Gø؈žf'øÐxøà˜øЀf>2èƔøè°èЈøðÈÿÿÿË6úöºøà øØ?Œ]Føè˜Ò«€üößãϹ´2àÀx­r+ðØ?¥l$yO@ž_­l$?R¼2ïßƼ…2Å6!ù,s@€pH,?È#âèh:‚¨T0ô4®
5
‹à‘?p©€Ñd¢Y`B‚¡‹p8G AØ%‚%HÁçW¶	_B†‰Š‹?’“’š??–B¥¦¥ B­®­©C³´µI·¸FA;
(-)src/org/eclipse/gmf/graphdef/editor/edit/commands/PolylineCreateCommand.java (+54 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.commands;
12
13
import org.eclipse.emf.ecore.EClass;
14
import org.eclipse.emf.ecore.EObject;
15
16
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
17
18
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
19
20
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
21
22
import org.eclipse.gmf.runtime.notation.View;
23
24
/**
25
 * @generated
26
 */
27
public class PolylineCreateCommand extends CreateElementCommand {
28
29
	/**
30
	 * @generated
31
	 */
32
	public PolylineCreateCommand(CreateElementRequest req) {
33
		super(req);
34
	}
35
36
	/**
37
	 * @generated
38
	 */
39
	protected EClass getEClassToEdit() {
40
		return GMFGraphPackage.eINSTANCE.getFigure();
41
	};
42
43
	/**
44
	 * @generated
45
	 */
46
	protected EObject getElementToEdit() {
47
		EObject container = ((CreateElementRequest) getRequest()).getContainer();
48
		if (container instanceof View) {
49
			container = ((View) container).getElement();
50
		}
51
		return container;
52
	}
53
54
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/commands/Rectangle2CreateCommand.java (+54 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.commands;
12
13
import org.eclipse.emf.ecore.EClass;
14
import org.eclipse.emf.ecore.EObject;
15
16
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
17
18
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
19
20
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
21
22
import org.eclipse.gmf.runtime.notation.View;
23
24
/**
25
 * @generated
26
 */
27
public class Rectangle2CreateCommand extends CreateElementCommand {
28
29
	/**
30
	 * @generated
31
	 */
32
	public Rectangle2CreateCommand(CreateElementRequest req) {
33
		super(req);
34
	}
35
36
	/**
37
	 * @generated
38
	 */
39
	protected EClass getEClassToEdit() {
40
		return GMFGraphPackage.eINSTANCE.getFigure();
41
	};
42
43
	/**
44
	 * @generated
45
	 */
46
	protected EObject getElementToEdit() {
47
		EObject container = ((CreateElementRequest) getRequest()).getContainer();
48
		if (container instanceof View) {
49
			container = ((View) container).getElement();
50
		}
51
		return container;
52
	}
53
54
}
(-)icons/linkTargetNavigatorGroup.gif (+5 lines)
Added Link Here
1
GIF89aÕÿÿ­r/‚Gø؈žf'øÐxøà˜øЀf>2èƔøè°èЈøðÈÿÿÿË6úöºøà øØ?Œ]Føè˜Ò«€üößãϹ´2àÀx­r+ðØ?¥l$yO@ž_­l$?R¼2ïßƼ…2Å6!ù,s@€pH,?È#âèh:‚¨T0ô4®
2
‹à‘?p©€Ñd¢Y`B‚¡‹p8G AØ%‚%HÁçW¶	_B†‰Š‹?’“’š??–B¥¦¥ B­®­©C³´µI·¸FA;Content-Type: image/gif
3
4
GIF89aÕÿÿ­r/‚Gø؈žf'øÐxøà˜øЀf>2èƔøè°èЈøðÈÿÿÿË6úöºøà øØ?Œ]Føè˜Ò«€üößãϹ´2àÀx­r+ðØ?¥l$yO@ž_­l$?R¼2ïßƼ…2Å6!ù,s@€pH,?È#âèh:‚¨T0ô4®
5
‹à‘?p©€Ñd¢Y`B‚¡‹p8G AØ%‚%HÁçW¶	_B†‰Š‹?’“’š??–B¥¦¥ B­®­©C³´µI·¸FA;
(-)src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphNavigatorContentProvider.java (+964 lines)
Added Link Here
1
/*
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.navigator;
12
13
import java.util.ArrayList;
14
import java.util.Collection;
15
import java.util.Collections;
16
import java.util.HashMap;
17
import java.util.Iterator;
18
19
import org.eclipse.core.resources.IFile;
20
import org.eclipse.core.runtime.IAdaptable;
21
import org.eclipse.emf.ecore.resource.Resource;
22
import org.eclipse.emf.ecore.resource.ResourceSet;
23
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
24
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
25
import org.eclipse.gmf.graphdef.editor.edit.parts.CompartmentEditPart;
26
import org.eclipse.gmf.graphdef.editor.edit.parts.ConnectionEditPart;
27
import org.eclipse.gmf.graphdef.editor.edit.parts.DiagramElementFigureEditPart;
28
import org.eclipse.gmf.graphdef.editor.edit.parts.Ellipse2EditPart;
29
import org.eclipse.gmf.graphdef.editor.edit.parts.EllipseEditPart;
30
import org.eclipse.gmf.graphdef.editor.edit.parts.FigureGalleryEditPart;
31
import org.eclipse.gmf.graphdef.editor.edit.parts.FigureGalleryFiguresEditPart;
32
import org.eclipse.gmf.graphdef.editor.edit.parts.NodeEditPart;
33
import org.eclipse.gmf.graphdef.editor.edit.parts.Polyline2EditPart;
34
import org.eclipse.gmf.graphdef.editor.edit.parts.PolylineEditPart;
35
import org.eclipse.gmf.graphdef.editor.edit.parts.Rectangle2EditPart;
36
import org.eclipse.gmf.graphdef.editor.edit.parts.RectangleEditPart;
37
import org.eclipse.gmf.graphdef.editor.edit.parts.RoundedRectangle2EditPart;
38
import org.eclipse.gmf.graphdef.editor.edit.parts.RoundedRectangleEditPart;
39
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
40
import org.eclipse.gmf.graphdef.editor.part.Messages;
41
import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory;
42
import org.eclipse.gmf.runtime.notation.Diagram;
43
import org.eclipse.gmf.runtime.notation.Edge;
44
import org.eclipse.gmf.runtime.notation.View;
45
import org.eclipse.jface.viewers.Viewer;
46
import org.eclipse.ui.IMemento;
47
import org.eclipse.ui.navigator.ICommonContentExtensionSite;
48
import org.eclipse.ui.navigator.ICommonContentProvider;
49
50
/**
51
 * @generated
52
 */
53
public class GMFGraphNavigatorContentProvider implements ICommonContentProvider {
54
55
	/**
56
	 * @generated
57
	 */
58
	private static final Object[] EMPTY_ARRAY = new Object[0];
59
60
	/**
61
	 * @generated
62
	 */
63
	public void dispose() {
64
	}
65
66
	/**
67
	 * @generated
68
	 */
69
	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
70
	}
71
72
	/**
73
	 * @generated
74
	 */
75
	public Object[] getElements(Object inputElement) {
76
		return getChildren(inputElement);
77
	}
78
79
	/**
80
	 * @generated
81
	 */
82
	public void restoreState(IMemento aMemento) {
83
	}
84
85
	/**
86
	 * @generated
87
	 */
88
	public void saveState(IMemento aMemento) {
89
	}
90
91
	/**
92
	 * @generated
93
	 */
94
	public void init(ICommonContentExtensionSite aConfig) {
95
	}
96
97
	/**
98
	 * @generated
99
	 */
100
	public Object[] getChildren(Object parentElement) {
101
		if (parentElement instanceof IFile) {
102
			IFile file = (IFile) parentElement;
103
			AdapterFactoryEditingDomain editingDomain = (AdapterFactoryEditingDomain) GMFEditingDomainFactory.INSTANCE.createEditingDomain();
104
			editingDomain.setResourceToReadOnlyMap(new HashMap() {
105
106
				public Object get(Object key) {
107
					if (!containsKey(key)) {
108
						put(key, Boolean.TRUE);
109
					}
110
					return super.get(key);
111
				}
112
			});
113
			ResourceSet resourceSet = editingDomain.getResourceSet();
114
115
			org.eclipse.emf.common.util.URI fileURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(file.getFullPath().toString(), true);
116
			Resource resource = resourceSet.getResource(fileURI, true);
117
			Collection result = new ArrayList();
118
			result.addAll(createNavigatorItems(selectViewsByType(resource.getContents(), CanvasEditPart.MODEL_ID), file, false));
119
			return result.toArray();
120
		}
121
122
		if (parentElement instanceof GMFGraphNavigatorGroup) {
123
			GMFGraphNavigatorGroup group = (GMFGraphNavigatorGroup) parentElement;
124
			return group.getChildren();
125
		}
126
127
		if (parentElement instanceof GMFGraphNavigatorItem) {
128
			GMFGraphNavigatorItem navigatorItem = (GMFGraphNavigatorItem) parentElement;
129
			if (navigatorItem.isLeaf() || !isOwnView(navigatorItem.getView())) {
130
				return EMPTY_ARRAY;
131
			}
132
			return getViewChildren(navigatorItem.getView(), parentElement);
133
		}
134
135
		/*
136
		 * Due to plugin.xml restrictions this code will be called only for views representing
137
		 * shortcuts to this diagram elements created on other diagrams. 
138
		 */
139
		if (parentElement instanceof IAdaptable) {
140
			View view = (View) ((IAdaptable) parentElement).getAdapter(View.class);
141
			if (view != null) {
142
				return getViewChildren(view, parentElement);
143
			}
144
		}
145
146
		return EMPTY_ARRAY;
147
	}
148
149
	/**
150
	 * @generated
151
	 */
152
	private Object[] getViewChildren(View view, Object parentElement) {
153
		switch (GMFGraphVisualIDRegistry.getVisualID(view)) {
154
155
		case CanvasEditPart.VISUAL_ID: {
156
			Collection result = new ArrayList();
157
			result.addAll(getForeignShortcuts((Diagram) view, parentElement));
158
			GMFGraphNavigatorGroup links = new GMFGraphNavigatorGroup(Messages.NavigatorGroupName_Canvas_1000_links, "icons/linksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
159
			Collection connectedViews = getChildrenByType(Collections.singleton(view), CompartmentEditPart.VISUAL_ID);
160
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
161
			connectedViews = getChildrenByType(Collections.singleton(view), NodeEditPart.VISUAL_ID);
162
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
163
			connectedViews = getChildrenByType(Collections.singleton(view), ConnectionEditPart.VISUAL_ID);
164
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
165
			connectedViews = getChildrenByType(Collections.singleton(view), FigureGalleryEditPart.VISUAL_ID);
166
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
167
			connectedViews = getDiagramLinksByType(Collections.singleton(view), DiagramElementFigureEditPart.VISUAL_ID);
168
			links.addChildren(createNavigatorItems(connectedViews, links, false));
169
			if (!links.isEmpty()) {
170
				result.add(links);
171
			}
172
			return result.toArray();
173
		}
174
175
		case CompartmentEditPart.VISUAL_ID: {
176
			Collection result = new ArrayList();
177
			GMFGraphNavigatorGroup outgoinglinks = new GMFGraphNavigatorGroup(Messages.NavigatorGroupName_Compartment_2001_outgoinglinks, "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
178
			Collection connectedViews = getOutgoingLinksByType(Collections.singleton(view), DiagramElementFigureEditPart.VISUAL_ID);
179
			outgoinglinks.addChildren(createNavigatorItems(connectedViews, outgoinglinks, true));
180
			if (!outgoinglinks.isEmpty()) {
181
				result.add(outgoinglinks);
182
			}
183
			return result.toArray();
184
		}
185
186
		case NodeEditPart.VISUAL_ID: {
187
			Collection result = new ArrayList();
188
			GMFGraphNavigatorGroup outgoinglinks = new GMFGraphNavigatorGroup(Messages.NavigatorGroupName_Node_2002_outgoinglinks, "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
189
			Collection connectedViews = getOutgoingLinksByType(Collections.singleton(view), DiagramElementFigureEditPart.VISUAL_ID);
190
			outgoinglinks.addChildren(createNavigatorItems(connectedViews, outgoinglinks, true));
191
			if (!outgoinglinks.isEmpty()) {
192
				result.add(outgoinglinks);
193
			}
194
			return result.toArray();
195
		}
196
197
		case ConnectionEditPart.VISUAL_ID: {
198
			Collection result = new ArrayList();
199
			GMFGraphNavigatorGroup outgoinglinks = new GMFGraphNavigatorGroup(Messages.NavigatorGroupName_Connection_2003_outgoinglinks, "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
200
			Collection connectedViews = getOutgoingLinksByType(Collections.singleton(view), DiagramElementFigureEditPart.VISUAL_ID);
201
			outgoinglinks.addChildren(createNavigatorItems(connectedViews, outgoinglinks, true));
202
			if (!outgoinglinks.isEmpty()) {
203
				result.add(outgoinglinks);
204
			}
205
			return result.toArray();
206
		}
207
208
		case FigureGalleryEditPart.VISUAL_ID: {
209
			Collection result = new ArrayList();
210
			Collection connectedViews = getChildrenByType(Collections.singleton(view), FigureGalleryFiguresEditPart.VISUAL_ID);
211
			connectedViews = getChildrenByType(connectedViews, RectangleEditPart.VISUAL_ID);
212
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
213
			connectedViews = getChildrenByType(Collections.singleton(view), FigureGalleryFiguresEditPart.VISUAL_ID);
214
			connectedViews = getChildrenByType(connectedViews, Ellipse2EditPart.VISUAL_ID);
215
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
216
			connectedViews = getChildrenByType(Collections.singleton(view), FigureGalleryFiguresEditPart.VISUAL_ID);
217
			connectedViews = getChildrenByType(connectedViews, RoundedRectangle2EditPart.VISUAL_ID);
218
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
219
			connectedViews = getChildrenByType(Collections.singleton(view), FigureGalleryFiguresEditPart.VISUAL_ID);
220
			connectedViews = getChildrenByType(connectedViews, Polyline2EditPart.VISUAL_ID);
221
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
222
			return result.toArray();
223
		}
224
225
		case RectangleEditPart.VISUAL_ID: {
226
			Collection result = new ArrayList();
227
			GMFGraphNavigatorGroup incominglinks = new GMFGraphNavigatorGroup(Messages.NavigatorGroupName_Rectangle_3001_incominglinks, "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
228
			Collection connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
229
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
230
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
231
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
232
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
233
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
234
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
235
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
236
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
237
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
238
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
239
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
240
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
241
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
242
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
243
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
244
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
245
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
246
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
247
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
248
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
249
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
250
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
251
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
252
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
253
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
254
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
255
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
256
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
257
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
258
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
259
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
260
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
261
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
262
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
263
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
264
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
265
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
266
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
267
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
268
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
269
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
270
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
271
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
272
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
273
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
274
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
275
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
276
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
277
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
278
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
279
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
280
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
281
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
282
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
283
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
284
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
285
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
286
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
287
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
288
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
289
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
290
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
291
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
292
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
293
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
294
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
295
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
296
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
297
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
298
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
299
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
300
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
301
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
302
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
303
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
304
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
305
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
306
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
307
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
308
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
309
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
310
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
311
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
312
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
313
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
314
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
315
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
316
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
317
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
318
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
319
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
320
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
321
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
322
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
323
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
324
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
325
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
326
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
327
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
328
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
329
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
330
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
331
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
332
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
333
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
334
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
335
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
336
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
337
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
338
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
339
			connectedViews = getChildrenByType(Collections.singleton(view), PolylineEditPart.VISUAL_ID);
340
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
341
			connectedViews = getIncomingLinksByType(Collections.singleton(view), DiagramElementFigureEditPart.VISUAL_ID);
342
			incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true));
343
			if (!incominglinks.isEmpty()) {
344
				result.add(incominglinks);
345
			}
346
			return result.toArray();
347
		}
348
349
		case Rectangle2EditPart.VISUAL_ID: {
350
			Collection result = new ArrayList();
351
			GMFGraphNavigatorGroup incominglinks = new GMFGraphNavigatorGroup(Messages.NavigatorGroupName_Rectangle_3002_incominglinks, "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
352
			Collection connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
353
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
354
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
355
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
356
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
357
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
358
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
359
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
360
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
361
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
362
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
363
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
364
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
365
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
366
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
367
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
368
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
369
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
370
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
371
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
372
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
373
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
374
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
375
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
376
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
377
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
378
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
379
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
380
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
381
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
382
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
383
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
384
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
385
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
386
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
387
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
388
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
389
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
390
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
391
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
392
			connectedViews = getChildrenByType(Collections.singleton(view), PolylineEditPart.VISUAL_ID);
393
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
394
			connectedViews = getIncomingLinksByType(Collections.singleton(view), DiagramElementFigureEditPart.VISUAL_ID);
395
			incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true));
396
			if (!incominglinks.isEmpty()) {
397
				result.add(incominglinks);
398
			}
399
			return result.toArray();
400
		}
401
402
		case EllipseEditPart.VISUAL_ID: {
403
			Collection result = new ArrayList();
404
			GMFGraphNavigatorGroup incominglinks = new GMFGraphNavigatorGroup(Messages.NavigatorGroupName_Ellipse_3003_incominglinks, "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
405
			Collection connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
406
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
407
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
408
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
409
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
410
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
411
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
412
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
413
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
414
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
415
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
416
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
417
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
418
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
419
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
420
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
421
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
422
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
423
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
424
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
425
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
426
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
427
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
428
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
429
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
430
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
431
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
432
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
433
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
434
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
435
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
436
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
437
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
438
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
439
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
440
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
441
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
442
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
443
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
444
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
445
			connectedViews = getChildrenByType(Collections.singleton(view), PolylineEditPart.VISUAL_ID);
446
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
447
			connectedViews = getIncomingLinksByType(Collections.singleton(view), DiagramElementFigureEditPart.VISUAL_ID);
448
			incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true));
449
			if (!incominglinks.isEmpty()) {
450
				result.add(incominglinks);
451
			}
452
			return result.toArray();
453
		}
454
455
		case RoundedRectangleEditPart.VISUAL_ID: {
456
			Collection result = new ArrayList();
457
			GMFGraphNavigatorGroup incominglinks = new GMFGraphNavigatorGroup(Messages.NavigatorGroupName_RoundedRectangle_3004_incominglinks, "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
458
			Collection connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
459
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
460
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
461
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
462
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
463
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
464
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
465
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
466
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
467
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
468
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
469
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
470
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
471
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
472
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
473
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
474
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
475
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
476
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
477
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
478
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
479
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
480
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
481
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
482
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
483
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
484
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
485
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
486
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
487
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
488
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
489
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
490
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
491
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
492
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
493
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
494
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
495
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
496
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
497
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
498
			connectedViews = getChildrenByType(Collections.singleton(view), PolylineEditPart.VISUAL_ID);
499
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
500
			connectedViews = getIncomingLinksByType(Collections.singleton(view), DiagramElementFigureEditPart.VISUAL_ID);
501
			incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true));
502
			if (!incominglinks.isEmpty()) {
503
				result.add(incominglinks);
504
			}
505
			return result.toArray();
506
		}
507
508
		case PolylineEditPart.VISUAL_ID: {
509
			Collection result = new ArrayList();
510
			GMFGraphNavigatorGroup incominglinks = new GMFGraphNavigatorGroup(Messages.NavigatorGroupName_Polyline_3005_incominglinks, "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
511
			Collection connectedViews = getIncomingLinksByType(Collections.singleton(view), DiagramElementFigureEditPart.VISUAL_ID);
512
			incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true));
513
			if (!incominglinks.isEmpty()) {
514
				result.add(incominglinks);
515
			}
516
			return result.toArray();
517
		}
518
519
		case Ellipse2EditPart.VISUAL_ID: {
520
			Collection result = new ArrayList();
521
			GMFGraphNavigatorGroup incominglinks = new GMFGraphNavigatorGroup(Messages.NavigatorGroupName_Ellipse_3006_incominglinks, "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
522
			Collection connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
523
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
524
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
525
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
526
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
527
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
528
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
529
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
530
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
531
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
532
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
533
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
534
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
535
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
536
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
537
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
538
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
539
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
540
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
541
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
542
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
543
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
544
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
545
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
546
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
547
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
548
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
549
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
550
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
551
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
552
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
553
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
554
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
555
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
556
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
557
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
558
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
559
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
560
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
561
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
562
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
563
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
564
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
565
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
566
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
567
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
568
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
569
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
570
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
571
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
572
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
573
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
574
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
575
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
576
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
577
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
578
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
579
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
580
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
581
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
582
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
583
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
584
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
585
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
586
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
587
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
588
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
589
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
590
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
591
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
592
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
593
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
594
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
595
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
596
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
597
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
598
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
599
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
600
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
601
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
602
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
603
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
604
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
605
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
606
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
607
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
608
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
609
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
610
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
611
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
612
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
613
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
614
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
615
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
616
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
617
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
618
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
619
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
620
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
621
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
622
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
623
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
624
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
625
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
626
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
627
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
628
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
629
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
630
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
631
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
632
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
633
			connectedViews = getChildrenByType(Collections.singleton(view), PolylineEditPart.VISUAL_ID);
634
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
635
			connectedViews = getIncomingLinksByType(Collections.singleton(view), DiagramElementFigureEditPart.VISUAL_ID);
636
			incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true));
637
			if (!incominglinks.isEmpty()) {
638
				result.add(incominglinks);
639
			}
640
			return result.toArray();
641
		}
642
643
		case RoundedRectangle2EditPart.VISUAL_ID: {
644
			Collection result = new ArrayList();
645
			GMFGraphNavigatorGroup incominglinks = new GMFGraphNavigatorGroup(Messages.NavigatorGroupName_RoundedRectangle_3007_incominglinks, "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
646
			Collection connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
647
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
648
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
649
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
650
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
651
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
652
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
653
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
654
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
655
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
656
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
657
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
658
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
659
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
660
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
661
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
662
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
663
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
664
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
665
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
666
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
667
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
668
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
669
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
670
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
671
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
672
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
673
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
674
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
675
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
676
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
677
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
678
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
679
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
680
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
681
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
682
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
683
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
684
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
685
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
686
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
687
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
688
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
689
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
690
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
691
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
692
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
693
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
694
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
695
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
696
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
697
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
698
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
699
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
700
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
701
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
702
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
703
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
704
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
705
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
706
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
707
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
708
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
709
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
710
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
711
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
712
			connectedViews = getChildrenByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
713
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
714
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
715
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
716
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
717
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
718
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
719
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
720
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
721
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
722
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
723
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
724
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
725
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
726
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
727
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
728
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
729
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
730
			connectedViews = getChildrenByType(connectedViews, RoundedRectangleEditPart.VISUAL_ID);
731
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
732
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
733
			connectedViews = getChildrenByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
734
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
735
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
736
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
737
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
738
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
739
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
740
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
741
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
742
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
743
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
744
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
745
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
746
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
747
			connectedViews = getChildrenByType(connectedViews, Rectangle2EditPart.VISUAL_ID);
748
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
749
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
750
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
751
			connectedViews = getChildrenByType(connectedViews, EllipseEditPart.VISUAL_ID);
752
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
753
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
754
			connectedViews = getChildrenByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
755
			connectedViews = getChildrenByType(connectedViews, PolylineEditPart.VISUAL_ID);
756
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
757
			connectedViews = getChildrenByType(Collections.singleton(view), PolylineEditPart.VISUAL_ID);
758
			result.addAll(createNavigatorItems(connectedViews, parentElement, false));
759
			connectedViews = getIncomingLinksByType(Collections.singleton(view), DiagramElementFigureEditPart.VISUAL_ID);
760
			incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true));
761
			if (!incominglinks.isEmpty()) {
762
				result.add(incominglinks);
763
			}
764
			return result.toArray();
765
		}
766
767
		case Polyline2EditPart.VISUAL_ID: {
768
			Collection result = new ArrayList();
769
			GMFGraphNavigatorGroup incominglinks = new GMFGraphNavigatorGroup(Messages.NavigatorGroupName_Polyline_3008_incominglinks, "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
770
			Collection connectedViews = getIncomingLinksByType(Collections.singleton(view), DiagramElementFigureEditPart.VISUAL_ID);
771
			incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true));
772
			if (!incominglinks.isEmpty()) {
773
				result.add(incominglinks);
774
			}
775
			return result.toArray();
776
		}
777
778
		case DiagramElementFigureEditPart.VISUAL_ID: {
779
			Collection result = new ArrayList();
780
			GMFGraphNavigatorGroup source = new GMFGraphNavigatorGroup(Messages.NavigatorGroupName_DiagramElementFigure_4001_source, "icons/linkSourceNavigatorGroup.gif", parentElement); //$NON-NLS-1$
781
			GMFGraphNavigatorGroup target = new GMFGraphNavigatorGroup(Messages.NavigatorGroupName_DiagramElementFigure_4001_target, "icons/linkTargetNavigatorGroup.gif", parentElement); //$NON-NLS-1$
782
			Collection connectedViews = getLinksTargetByType(Collections.singleton(view), RectangleEditPart.VISUAL_ID);
783
			target.addChildren(createNavigatorItems(connectedViews, target, true));
784
			connectedViews = getLinksTargetByType(Collections.singleton(view), Rectangle2EditPart.VISUAL_ID);
785
			target.addChildren(createNavigatorItems(connectedViews, target, true));
786
			connectedViews = getLinksTargetByType(Collections.singleton(view), EllipseEditPart.VISUAL_ID);
787
			target.addChildren(createNavigatorItems(connectedViews, target, true));
788
			connectedViews = getLinksTargetByType(Collections.singleton(view), RoundedRectangleEditPart.VISUAL_ID);
789
			target.addChildren(createNavigatorItems(connectedViews, target, true));
790
			connectedViews = getLinksTargetByType(Collections.singleton(view), PolylineEditPart.VISUAL_ID);
791
			target.addChildren(createNavigatorItems(connectedViews, target, true));
792
			connectedViews = getLinksTargetByType(Collections.singleton(view), Ellipse2EditPart.VISUAL_ID);
793
			target.addChildren(createNavigatorItems(connectedViews, target, true));
794
			connectedViews = getLinksTargetByType(Collections.singleton(view), RoundedRectangle2EditPart.VISUAL_ID);
795
			target.addChildren(createNavigatorItems(connectedViews, target, true));
796
			connectedViews = getLinksTargetByType(Collections.singleton(view), Polyline2EditPart.VISUAL_ID);
797
			target.addChildren(createNavigatorItems(connectedViews, target, true));
798
			connectedViews = getLinksSourceByType(Collections.singleton(view), CompartmentEditPart.VISUAL_ID);
799
			source.addChildren(createNavigatorItems(connectedViews, source, true));
800
			connectedViews = getLinksSourceByType(Collections.singleton(view), NodeEditPart.VISUAL_ID);
801
			source.addChildren(createNavigatorItems(connectedViews, source, true));
802
			connectedViews = getLinksSourceByType(Collections.singleton(view), ConnectionEditPart.VISUAL_ID);
803
			source.addChildren(createNavigatorItems(connectedViews, source, true));
804
			if (!source.isEmpty()) {
805
				result.add(source);
806
			}
807
			if (!target.isEmpty()) {
808
				result.add(target);
809
			}
810
			return result.toArray();
811
		}
812
		}
813
		return EMPTY_ARRAY;
814
	}
815
816
	/**
817
	 * @generated
818
	 */
819
	private Collection getLinksSourceByType(Collection edges, int visualID) {
820
		Collection result = new ArrayList();
821
		String type = GMFGraphVisualIDRegistry.getType(visualID);
822
		for (Iterator it = edges.iterator(); it.hasNext();) {
823
			Edge nextEdge = (Edge) it.next();
824
			View nextEdgeSource = nextEdge.getSource();
825
			if (type.equals(nextEdgeSource.getType()) && isOwnView(nextEdgeSource)) {
826
				result.add(nextEdgeSource);
827
			}
828
		}
829
		return result;
830
	}
831
832
	/**
833
	 * @generated
834
	 */
835
	private Collection getLinksTargetByType(Collection edges, int visualID) {
836
		Collection result = new ArrayList();
837
		String type = GMFGraphVisualIDRegistry.getType(visualID);
838
		for (Iterator it = edges.iterator(); it.hasNext();) {
839
			Edge nextEdge = (Edge) it.next();
840
			View nextEdgeTarget = nextEdge.getTarget();
841
			if (type.equals(nextEdgeTarget.getType()) && isOwnView(nextEdgeTarget)) {
842
				result.add(nextEdgeTarget);
843
			}
844
		}
845
		return result;
846
	}
847
848
	/**
849
	 * @generated
850
	 */
851
	private Collection getOutgoingLinksByType(Collection nodes, int visualID) {
852
		Collection result = new ArrayList();
853
		String type = GMFGraphVisualIDRegistry.getType(visualID);
854
		for (Iterator it = nodes.iterator(); it.hasNext();) {
855
			View nextNode = (View) it.next();
856
			result.addAll(selectViewsByType(nextNode.getSourceEdges(), type));
857
		}
858
		return result;
859
	}
860
861
	/**
862
	 * @generated
863
	 */
864
	private Collection getIncomingLinksByType(Collection nodes, int visualID) {
865
		Collection result = new ArrayList();
866
		String type = GMFGraphVisualIDRegistry.getType(visualID);
867
		for (Iterator it = nodes.iterator(); it.hasNext();) {
868
			View nextNode = (View) it.next();
869
			result.addAll(selectViewsByType(nextNode.getTargetEdges(), type));
870
		}
871
		return result;
872
	}
873
874
	/**
875
	 * @generated
876
	 */
877
	private Collection getChildrenByType(Collection nodes, int visualID) {
878
		Collection result = new ArrayList();
879
		String type = GMFGraphVisualIDRegistry.getType(visualID);
880
		for (Iterator it = nodes.iterator(); it.hasNext();) {
881
			View nextNode = (View) it.next();
882
			result.addAll(selectViewsByType(nextNode.getChildren(), type));
883
		}
884
		return result;
885
	}
886
887
	/**
888
	 * @generated
889
	 */
890
	private Collection getDiagramLinksByType(Collection diagrams, int visualID) {
891
		Collection result = new ArrayList();
892
		String type = GMFGraphVisualIDRegistry.getType(visualID);
893
		for (Iterator it = diagrams.iterator(); it.hasNext();) {
894
			Diagram nextDiagram = (Diagram) it.next();
895
			result.addAll(selectViewsByType(nextDiagram.getEdges(), type));
896
		}
897
		return result;
898
	}
899
900
	/**
901
	 * @generated
902
	 */
903
	private Collection selectViewsByType(Collection views, String type) {
904
		Collection result = new ArrayList();
905
		for (Iterator it = views.iterator(); it.hasNext();) {
906
			View nextView = (View) it.next();
907
			if (type.equals(nextView.getType()) && isOwnView(nextView)) {
908
				result.add(nextView);
909
			}
910
		}
911
		return result;
912
	}
913
914
	/**
915
	 * @generated
916
	 */
917
	private boolean isOwnView(View view) {
918
		return CanvasEditPart.MODEL_ID.equals(GMFGraphVisualIDRegistry.getModelID(view));
919
	}
920
921
	/**
922
	 * @generated
923
	 */
924
	private Collection createNavigatorItems(Collection views, Object parent, boolean isLeafs) {
925
		Collection result = new ArrayList();
926
		for (Iterator it = views.iterator(); it.hasNext();) {
927
			result.add(new GMFGraphNavigatorItem((View) it.next(), parent, isLeafs));
928
		}
929
		return result;
930
	}
931
932
	/**
933
	 * @generated
934
	 */
935
	private Collection getForeignShortcuts(Diagram diagram, Object parent) {
936
		Collection result = new ArrayList();
937
		for (Iterator it = diagram.getChildren().iterator(); it.hasNext();) {
938
			View nextView = (View) it.next();
939
			if (!isOwnView(nextView) && nextView.getEAnnotation("Shortcut") != null) { //$NON-NLS-1$
940
				result.add(nextView);
941
			}
942
		}
943
		return createNavigatorItems(result, parent, false);
944
	}
945
946
	/**
947
	 * @generated
948
	 */
949
	public Object getParent(Object element) {
950
		if (element instanceof GMFGraphAbstractNavigatorItem) {
951
			GMFGraphAbstractNavigatorItem abstractNavigatorItem = (GMFGraphAbstractNavigatorItem) element;
952
			return abstractNavigatorItem.getParent();
953
		}
954
		return null;
955
	}
956
957
	/**
958
	 * @generated
959
	 */
960
	public boolean hasChildren(Object element) {
961
		return element instanceof IFile || getChildren(element).length > 0;
962
	}
963
964
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/commands/NodeCreateCommand.java (+54 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.commands;
12
13
import org.eclipse.emf.ecore.EClass;
14
import org.eclipse.emf.ecore.EObject;
15
16
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
17
18
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
19
20
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
21
22
import org.eclipse.gmf.runtime.notation.View;
23
24
/**
25
 * @generated
26
 */
27
public class NodeCreateCommand extends CreateElementCommand {
28
29
	/**
30
	 * @generated
31
	 */
32
	public NodeCreateCommand(CreateElementRequest req) {
33
		super(req);
34
	}
35
36
	/**
37
	 * @generated
38
	 */
39
	protected EClass getEClassToEdit() {
40
		return GMFGraphPackage.eINSTANCE.getCanvas();
41
	};
42
43
	/**
44
	 * @generated
45
	 */
46
	protected EObject getElementToEdit() {
47
		EObject container = ((CreateElementRequest) getRequest()).getContainer();
48
		if (container instanceof View) {
49
			container = ((View) container).getElement();
50
		}
51
		return container;
52
	}
53
54
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/commands/CompartmentCreateCommand.java (+54 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.commands;
12
13
import org.eclipse.emf.ecore.EClass;
14
import org.eclipse.emf.ecore.EObject;
15
16
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
17
18
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
19
20
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
21
22
import org.eclipse.gmf.runtime.notation.View;
23
24
/**
25
 * @generated
26
 */
27
public class CompartmentCreateCommand extends CreateElementCommand {
28
29
	/**
30
	 * @generated
31
	 */
32
	public CompartmentCreateCommand(CreateElementRequest req) {
33
		super(req);
34
	}
35
36
	/**
37
	 * @generated
38
	 */
39
	protected EClass getEClassToEdit() {
40
		return GMFGraphPackage.eINSTANCE.getCanvas();
41
	};
42
43
	/**
44
	 * @generated
45
	 */
46
	protected EObject getElementToEdit() {
47
		EObject container = ((CreateElementRequest) getRequest()).getContainer();
48
		if (container instanceof View) {
49
			container = ((View) container).getElement();
50
		}
51
		return container;
52
	}
53
54
}
(-)src/org/eclipse/gmf/graphdef/editor/preferences/DiagramRulersAndGridPreferencePage.java (+27 lines)
Added Link Here
1
/*
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.preferences;
12
13
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
14
import org.eclipse.gmf.runtime.diagram.ui.preferences.RulerGridPreferencePage;
15
16
/**
17
 * @generated
18
 */
19
public class DiagramRulersAndGridPreferencePage extends RulerGridPreferencePage {
20
21
	/**
22
	 * @generated
23
	 */
24
	public DiagramRulersAndGridPreferencePage() {
25
		setPreferenceStore(GMFGraphDiagramEditorPlugin.getInstance().getPreferenceStore());
26
	}
27
}
(-)src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphAbstractNavigatorItem.java (+76 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.navigator;
12
13
import org.eclipse.core.runtime.IAdaptable;
14
import org.eclipse.core.runtime.IAdapterFactory;
15
import org.eclipse.core.runtime.Platform;
16
17
import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
18
19
/**
20
 * @generated
21
 */
22
public abstract class GMFGraphAbstractNavigatorItem implements IAdaptable {
23
24
	/**
25
	 * @generated
26
	 */
27
	static {
28
		final Class[] supportedTypes = new Class[] { ITabbedPropertySheetPageContributor.class };
29
		final ITabbedPropertySheetPageContributor propertySheetPageContributor = new ITabbedPropertySheetPageContributor() {
30
31
			public String getContributorId() {
32
				return "org.eclipse.gmf.graphdef.editor"; //$NON-NLS-1$
33
			}
34
		};
35
		Platform.getAdapterManager().registerAdapters(new IAdapterFactory() {
36
37
			public Object getAdapter(Object adaptableObject, Class adapterType) {
38
				if (adaptableObject instanceof GMFGraphAbstractNavigatorItem && adapterType == ITabbedPropertySheetPageContributor.class) {
39
					return propertySheetPageContributor;
40
				}
41
				return null;
42
			}
43
44
			public Class[] getAdapterList() {
45
				return supportedTypes;
46
			}
47
		}, GMFGraphAbstractNavigatorItem.class);
48
	}
49
50
	/**
51
	 * @generated
52
	 */
53
	private Object myParent;
54
55
	/**
56
	 * @generated
57
	 */
58
	protected GMFGraphAbstractNavigatorItem(Object parent) {
59
		myParent = parent;
60
	}
61
62
	/**
63
	 * @generated
64
	 */
65
	public Object getParent() {
66
		return myParent;
67
	}
68
69
	/**
70
	 * @generated
71
	 */
72
	public Object getAdapter(Class adapter) {
73
		return Platform.getAdapterManager().getAdapter(this, adapter);
74
	}
75
76
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/commands/RoundedRectangle2CreateCommand.java (+54 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.commands;
12
13
import org.eclipse.emf.ecore.EClass;
14
import org.eclipse.emf.ecore.EObject;
15
16
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
17
18
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
19
20
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
21
22
import org.eclipse.gmf.runtime.notation.View;
23
24
/**
25
 * @generated
26
 */
27
public class RoundedRectangle2CreateCommand extends CreateElementCommand {
28
29
	/**
30
	 * @generated
31
	 */
32
	public RoundedRectangle2CreateCommand(CreateElementRequest req) {
33
		super(req);
34
	}
35
36
	/**
37
	 * @generated
38
	 */
39
	protected EClass getEClassToEdit() {
40
		return GMFGraphPackage.eINSTANCE.getFigureGallery();
41
	};
42
43
	/**
44
	 * @generated
45
	 */
46
	protected EObject getElementToEdit() {
47
		EObject container = ((CreateElementRequest) getRequest()).getContainer();
48
		if (container instanceof View) {
49
			container = ((View) container).getElement();
50
		}
51
		return container;
52
	}
53
54
}
(-)messages.properties (+46 lines)
Added Link Here
1
2
# TODO: manually put keys and values
3
DiagramElements1Group_title=Diagram Elements
4
DiagramElements1Group_desc=Can visualize domain model elements
5
Figures2Group_title=Figures
6
Figures2Group_desc=Can be references by Diagram Elements
7
Node1CreationTool_title=Node
8
Node1CreationTool_desc=Create Diagram Element representing Top-level diagram Node
9
ChildNode2CreationTool_title=ChildNode
10
ChildNode2CreationTool_desc=Create Diagram Element representing Child diagram Node
11
Compartment3CreationTool_title=Compartment
12
Compartment3CreationTool_desc=Create Diagram Element representing Children Compartment
13
Connection4CreationTool_title=Connection
14
Connection4CreationTool_desc=Create Diagram Element representing Connection
15
FigureLink5CreationTool_title=Figure Link
16
FigureLink5CreationTool_desc=Link from the Diagram Element to the figure
17
FigureGallery1CreationTool_title=FigureGallery
18
FigureGallery1CreationTool_desc=Create FigureGallery - physical container for figures
19
Rectangle2CreationTool_title=Rectangle
20
Rectangle2CreationTool_desc=Create Rectangle
21
Ellipse3CreationTool_title=Ellipse
22
Ellipse3CreationTool_desc=Create Ellipse
23
RoundedRectangle4CreationTool_title=Rounded Rectangle
24
RoundedRectangle4CreationTool_desc=Create Rounded Rectangle
25
Polyline5CreationTool_title=Polyline
26
Polyline5CreationTool_desc=Create new PolylineConnection
27
CompartmentVisualFacetsEditPart_title=VisualFacets
28
NodeVisualFacetsEditPart_title=VisualFacets
29
ConnectionVisualFacetsEditPart_title=VisualFacets
30
FigureGalleryFiguresEditPart_title=Figures
31
32
CommandName_OpenDiagram=Open Diagram
33
NavigatorGroupName_Canvas_1000_links=links
34
NavigatorGroupName_Compartment_2001_outgoinglinks=outgoing links
35
NavigatorGroupName_Node_2002_outgoinglinks=outgoing links
36
NavigatorGroupName_Connection_2003_outgoinglinks=outgoing links
37
NavigatorGroupName_Rectangle_3001_incominglinks=incoming links
38
NavigatorGroupName_Rectangle_3002_incominglinks=incoming links
39
NavigatorGroupName_Ellipse_3003_incominglinks=incoming links
40
NavigatorGroupName_RoundedRectangle_3004_incominglinks=incoming links
41
NavigatorGroupName_Polyline_3005_incominglinks=incoming links
42
NavigatorGroupName_Ellipse_3006_incominglinks=incoming links
43
NavigatorGroupName_RoundedRectangle_3007_incominglinks=incoming links
44
NavigatorGroupName_Polyline_3008_incominglinks=incoming links
45
NavigatorGroupName_DiagramElementFigure_4001_source=source
46
NavigatorGroupName_DiagramElementFigure_4001_target=target
(-)src/org/eclipse/gmf/graphdef/editor/edit/commands/ConnectionCreateCommand.java (+54 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.commands;
12
13
import org.eclipse.emf.ecore.EClass;
14
import org.eclipse.emf.ecore.EObject;
15
16
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
17
18
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
19
20
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
21
22
import org.eclipse.gmf.runtime.notation.View;
23
24
/**
25
 * @generated
26
 */
27
public class ConnectionCreateCommand extends CreateElementCommand {
28
29
	/**
30
	 * @generated
31
	 */
32
	public ConnectionCreateCommand(CreateElementRequest req) {
33
		super(req);
34
	}
35
36
	/**
37
	 * @generated
38
	 */
39
	protected EClass getEClassToEdit() {
40
		return GMFGraphPackage.eINSTANCE.getCanvas();
41
	};
42
43
	/**
44
	 * @generated
45
	 */
46
	protected EObject getElementToEdit() {
47
		EObject container = ((CreateElementRequest) getRequest()).getContainer();
48
		if (container instanceof View) {
49
			container = ((View) container).getElement();
50
		}
51
		return container;
52
	}
53
54
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/commands/GMFGraphCreateShortcutDecorationsCommand.java (+80 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.commands;
12
13
import java.util.Collections;
14
import java.util.Iterator;
15
import java.util.List;
16
17
import org.eclipse.core.commands.ExecutionException;
18
19
import org.eclipse.core.runtime.IAdaptable;
20
import org.eclipse.core.runtime.IProgressMonitor;
21
22
import org.eclipse.emf.ecore.EAnnotation;
23
import org.eclipse.emf.ecore.EcoreFactory;
24
25
import org.eclipse.emf.transaction.TransactionalEditingDomain;
26
27
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
28
29
import org.eclipse.gmf.runtime.common.core.command.CommandResult;
30
31
import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
32
33
import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
34
35
import org.eclipse.gmf.runtime.notation.View;
36
37
/**
38
 * @generated
39
 */
40
public class GMFGraphCreateShortcutDecorationsCommand extends AbstractTransactionalCommand {
41
42
	/**
43
	 * @generated
44
	 */
45
	private List myDescriptors;
46
47
	/**
48
	 * @generated
49
	 */
50
	public GMFGraphCreateShortcutDecorationsCommand(TransactionalEditingDomain editingDomain, View parentView, List viewDescriptors) {
51
		super(editingDomain, "Create Shortcuts", getWorkspaceFiles(parentView)); //$NON-NLS-1$
52
		myDescriptors = viewDescriptors;
53
	}
54
55
	/**
56
	 * @generated
57
	 */
58
	public GMFGraphCreateShortcutDecorationsCommand(TransactionalEditingDomain editingDomain, View parentView, CreateViewRequest.ViewDescriptor viewDescriptor) {
59
		this(editingDomain, parentView, Collections.singletonList(viewDescriptor));
60
	}
61
62
	/**
63
	 * @generated
64
	 */
65
	protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
66
		for (Iterator it = myDescriptors.iterator(); it.hasNext();) {
67
			CreateViewRequest.ViewDescriptor nextDescriptor = (CreateViewRequest.ViewDescriptor) it.next();
68
			View view = (View) nextDescriptor.getAdapter(View.class);
69
			if (view != null && view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
70
71
				EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation();
72
				shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$
73
				shortcutAnnotation.getDetails().put("modelID", CanvasEditPart.MODEL_ID); //$NON-NLS-1$
74
				view.getEAnnotations().add(shortcutAnnotation);
75
			}
76
		}
77
		return CommandResult.newOKCommandResult();
78
	}
79
80
}
(-)src/org/eclipse/gmf/graphdef/editor/preferences/DiagramConnectionsPreferencePage.java (+27 lines)
Added Link Here
1
/*
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.preferences;
12
13
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
14
import org.eclipse.gmf.runtime.diagram.ui.preferences.ConnectionsPreferencePage;
15
16
/**
17
 * @generated
18
 */
19
public class DiagramConnectionsPreferencePage extends ConnectionsPreferencePage {
20
21
	/**
22
	 * @generated
23
	 */
24
	public DiagramConnectionsPreferencePage() {
25
		setPreferenceStore(GMFGraphDiagramEditorPlugin.getInstance().getPreferenceStore());
26
	}
27
}
(-)src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphNavigatorLabelProvider.java (+501 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.navigator;
12
13
import org.eclipse.core.runtime.IAdaptable;
14
15
import org.eclipse.emf.ecore.EObject;
16
17
import org.eclipse.gmf.gmfgraph.Identity;
18
19
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
20
import org.eclipse.gmf.graphdef.editor.edit.parts.CompartmentEditPart;
21
import org.eclipse.gmf.graphdef.editor.edit.parts.CompartmentNameEditPart;
22
import org.eclipse.gmf.graphdef.editor.edit.parts.ConnectionEditPart;
23
import org.eclipse.gmf.graphdef.editor.edit.parts.ConnectionNameEditPart;
24
import org.eclipse.gmf.graphdef.editor.edit.parts.DiagramElementFigureEditPart;
25
import org.eclipse.gmf.graphdef.editor.edit.parts.Ellipse2EditPart;
26
import org.eclipse.gmf.graphdef.editor.edit.parts.EllipseEditPart;
27
import org.eclipse.gmf.graphdef.editor.edit.parts.FigureGalleryEditPart;
28
import org.eclipse.gmf.graphdef.editor.edit.parts.FigureGalleryNameEditPart;
29
import org.eclipse.gmf.graphdef.editor.edit.parts.NodeEditPart;
30
import org.eclipse.gmf.graphdef.editor.edit.parts.NodeNameEditPart;
31
import org.eclipse.gmf.graphdef.editor.edit.parts.Polyline2EditPart;
32
import org.eclipse.gmf.graphdef.editor.edit.parts.PolylineEditPart;
33
import org.eclipse.gmf.graphdef.editor.edit.parts.Rectangle2EditPart;
34
import org.eclipse.gmf.graphdef.editor.edit.parts.RectangleEditPart;
35
import org.eclipse.gmf.graphdef.editor.edit.parts.RoundedRectangle2EditPart;
36
import org.eclipse.gmf.graphdef.editor.edit.parts.RoundedRectangleEditPart;
37
38
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
39
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
40
41
import org.eclipse.gmf.graphdef.editor.providers.GMFGraphElementTypes;
42
43
import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
44
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
45
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService;
46
47
import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
48
49
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
50
51
import org.eclipse.gmf.runtime.notation.View;
52
53
import org.eclipse.jface.resource.ImageDescriptor;
54
import org.eclipse.jface.resource.ImageRegistry;
55
56
import org.eclipse.jface.viewers.ITreePathLabelProvider;
57
import org.eclipse.jface.viewers.LabelProvider;
58
import org.eclipse.jface.viewers.TreePath;
59
import org.eclipse.jface.viewers.ViewerLabel;
60
61
import org.eclipse.swt.graphics.Image;
62
63
import org.eclipse.ui.IMemento;
64
65
import org.eclipse.ui.navigator.ICommonContentExtensionSite;
66
import org.eclipse.ui.navigator.ICommonLabelProvider;
67
68
/**
69
 * @generated
70
 */
71
public class GMFGraphNavigatorLabelProvider extends LabelProvider implements ICommonLabelProvider, ITreePathLabelProvider {
72
73
	/**
74
	 * @generated
75
	 */
76
	static {
77
		GMFGraphDiagramEditorPlugin.getInstance().getImageRegistry().put("Navigator?InvalidElement", ImageDescriptor.getMissingImageDescriptor());
78
		GMFGraphDiagramEditorPlugin.getInstance().getImageRegistry().put("Navigator?UnknownElement", ImageDescriptor.getMissingImageDescriptor());
79
		GMFGraphDiagramEditorPlugin.getInstance().getImageRegistry().put("Navigator?ImageNotFound", ImageDescriptor.getMissingImageDescriptor());
80
	}
81
82
	/**
83
	 * @generated
84
	 */
85
	public void updateLabel(ViewerLabel label, TreePath elementPath) {
86
		Object element = elementPath.getLastSegment();
87
		if (element instanceof GMFGraphNavigatorItem && !isOwnView(((GMFGraphNavigatorItem) element).getView())) {
88
			return;
89
		}
90
		label.setText(getText(element));
91
		label.setImage(getImage(element));
92
	}
93
94
	/**
95
	 * @generated
96
	 */
97
	public Image getImage(Object element) {
98
		if (element instanceof GMFGraphNavigatorGroup) {
99
			GMFGraphNavigatorGroup group = (GMFGraphNavigatorGroup) element;
100
			return GMFGraphDiagramEditorPlugin.getInstance().getBundledImage(group.getIcon());
101
		}
102
103
		if (element instanceof GMFGraphNavigatorItem) {
104
			GMFGraphNavigatorItem navigatorItem = (GMFGraphNavigatorItem) element;
105
			if (!isOwnView(navigatorItem.getView())) {
106
				return super.getImage(element);
107
			}
108
			return getImage(navigatorItem.getView());
109
		}
110
111
		// Due to plugin.xml content will be called only for "own" views
112
		if (element instanceof IAdaptable) {
113
			View view = (View) ((IAdaptable) element).getAdapter(View.class);
114
			if (view != null && isOwnView(view)) {
115
				return getImage(view);
116
			}
117
		}
118
		return super.getImage(element);
119
	}
120
121
	/**
122
	 * @generated
123
	 */
124
	public Image getImage(View view) {
125
		switch (GMFGraphVisualIDRegistry.getVisualID(view)) {
126
		case CompartmentEditPart.VISUAL_ID:
127
			return getImage("Navigator?TopLevelNode?http://www.eclipse.org/gmf/2005/GraphicalDefinition?Compartment", GMFGraphElementTypes.Compartment_2001);
128
		case NodeEditPart.VISUAL_ID:
129
			return getImage("Navigator?TopLevelNode?http://www.eclipse.org/gmf/2005/GraphicalDefinition?Node", GMFGraphElementTypes.Node_2002);
130
		case ConnectionEditPart.VISUAL_ID:
131
			return getImage("Navigator?TopLevelNode?http://www.eclipse.org/gmf/2005/GraphicalDefinition?Connection", GMFGraphElementTypes.Connection_2003);
132
		case FigureGalleryEditPart.VISUAL_ID:
133
			return getImage("Navigator?TopLevelNode?http://www.eclipse.org/gmf/2005/GraphicalDefinition?FigureGallery", GMFGraphElementTypes.FigureGallery_2004);
134
		case RectangleEditPart.VISUAL_ID:
135
			return getImage("Navigator?Node?http://www.eclipse.org/gmf/2005/GraphicalDefinition?Rectangle", GMFGraphElementTypes.Rectangle_3001);
136
		case Rectangle2EditPart.VISUAL_ID:
137
			return getImage("Navigator?Node?http://www.eclipse.org/gmf/2005/GraphicalDefinition?Rectangle", GMFGraphElementTypes.Rectangle_3002);
138
		case EllipseEditPart.VISUAL_ID:
139
			return getImage("Navigator?Node?http://www.eclipse.org/gmf/2005/GraphicalDefinition?Ellipse", GMFGraphElementTypes.Ellipse_3003);
140
		case RoundedRectangleEditPart.VISUAL_ID:
141
			return getImage("Navigator?Node?http://www.eclipse.org/gmf/2005/GraphicalDefinition?RoundedRectangle", GMFGraphElementTypes.RoundedRectangle_3004);
142
		case PolylineEditPart.VISUAL_ID:
143
			return getImage("Navigator?Node?http://www.eclipse.org/gmf/2005/GraphicalDefinition?Polyline", GMFGraphElementTypes.Polyline_3005);
144
		case Ellipse2EditPart.VISUAL_ID:
145
			return getImage("Navigator?Node?http://www.eclipse.org/gmf/2005/GraphicalDefinition?Ellipse", GMFGraphElementTypes.Ellipse_3006);
146
		case RoundedRectangle2EditPart.VISUAL_ID:
147
			return getImage("Navigator?Node?http://www.eclipse.org/gmf/2005/GraphicalDefinition?RoundedRectangle", GMFGraphElementTypes.RoundedRectangle_3007);
148
		case Polyline2EditPart.VISUAL_ID:
149
			return getImage("Navigator?Node?http://www.eclipse.org/gmf/2005/GraphicalDefinition?Polyline", GMFGraphElementTypes.Polyline_3008);
150
		case CanvasEditPart.VISUAL_ID:
151
			return getImage("Navigator?Diagram?http://www.eclipse.org/gmf/2005/GraphicalDefinition?Canvas", GMFGraphElementTypes.Canvas_1000);
152
		case DiagramElementFigureEditPart.VISUAL_ID:
153
			return getImage("Navigator?Link?http://www.eclipse.org/gmf/2005/GraphicalDefinition?DiagramElement?figure", GMFGraphElementTypes.DiagramElementFigure_4001);
154
		default:
155
			return getImage("Navigator?UnknownElement", null);
156
		}
157
	}
158
159
	/**
160
	 * @generated
161
	 */
162
	private Image getImage(String key, IElementType elementType) {
163
		ImageRegistry imageRegistry = GMFGraphDiagramEditorPlugin.getInstance().getImageRegistry();
164
		Image image = imageRegistry.get(key);
165
		if (image == null && elementType != null && GMFGraphElementTypes.isKnownElementType(elementType)) {
166
			image = GMFGraphElementTypes.getImage(elementType);
167
			imageRegistry.put(key, image);
168
		}
169
170
		if (image == null) {
171
			image = imageRegistry.get("Navigator?ImageNotFound");
172
			imageRegistry.put(key, image);
173
		}
174
		return image;
175
	}
176
177
	/**
178
	 * @generated
179
	 */
180
	public String getText(Object element) {
181
		if (element instanceof GMFGraphNavigatorGroup) {
182
			GMFGraphNavigatorGroup group = (GMFGraphNavigatorGroup) element;
183
			return group.getGroupName();
184
		}
185
186
		if (element instanceof GMFGraphNavigatorItem) {
187
			GMFGraphNavigatorItem navigatorItem = (GMFGraphNavigatorItem) element;
188
			if (!isOwnView(navigatorItem.getView())) {
189
				return null;
190
			}
191
			return getText(navigatorItem.getView());
192
		}
193
194
		// Due to plugin.xml content will be called only for "own" views
195
		if (element instanceof IAdaptable) {
196
			View view = (View) ((IAdaptable) element).getAdapter(View.class);
197
			if (view != null && isOwnView(view)) {
198
				return getText(view);
199
			}
200
		}
201
		return super.getText(element);
202
	}
203
204
	/**
205
	 * @generated
206
	 */
207
	public String getText(View view) {
208
		switch (GMFGraphVisualIDRegistry.getVisualID(view)) {
209
		case CompartmentEditPart.VISUAL_ID:
210
			return getCompartment_2001Text(view);
211
		case NodeEditPart.VISUAL_ID:
212
			return getNode_2002Text(view);
213
		case ConnectionEditPart.VISUAL_ID:
214
			return getConnection_2003Text(view);
215
		case FigureGalleryEditPart.VISUAL_ID:
216
			return getFigureGallery_2004Text(view);
217
		case RectangleEditPart.VISUAL_ID:
218
			return getRectangle_3001Text(view);
219
		case Rectangle2EditPart.VISUAL_ID:
220
			return getRectangle_3002Text(view);
221
		case EllipseEditPart.VISUAL_ID:
222
			return getEllipse_3003Text(view);
223
		case RoundedRectangleEditPart.VISUAL_ID:
224
			return getRoundedRectangle_3004Text(view);
225
		case PolylineEditPart.VISUAL_ID:
226
			return getPolyline_3005Text(view);
227
		case Ellipse2EditPart.VISUAL_ID:
228
			return getEllipse_3006Text(view);
229
		case RoundedRectangle2EditPart.VISUAL_ID:
230
			return getRoundedRectangle_3007Text(view);
231
		case Polyline2EditPart.VISUAL_ID:
232
			return getPolyline_3008Text(view);
233
		case CanvasEditPart.VISUAL_ID:
234
			return getCanvas_1000Text(view);
235
		case DiagramElementFigureEditPart.VISUAL_ID:
236
			return getDiagramElementFigure_4001Text(view);
237
		default:
238
			return getUnknownElementText(view);
239
		}
240
	}
241
242
	/**
243
	 * @generated
244
	 */
245
	private String getCompartment_2001Text(View view) {
246
		IParser parser = ParserService.getInstance().getParser(new IAdaptable() {
247
248
			public Object getAdapter(Class adapter) {
249
				if (String.class.equals(adapter)) {
250
					return GMFGraphVisualIDRegistry.getType(CompartmentNameEditPart.VISUAL_ID);
251
				}
252
				if (IElementType.class.equals(adapter)) {
253
					return GMFGraphElementTypes.Compartment_2001;
254
				}
255
				return null;
256
			}
257
		});
258
		if (parser != null) {
259
			return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue());
260
		} else {
261
			GMFGraphDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5001);
262
			return "";
263
		}
264
	}
265
266
	/**
267
	 * @generated
268
	 */
269
	private String getNode_2002Text(View view) {
270
		IParser parser = ParserService.getInstance().getParser(new IAdaptable() {
271
272
			public Object getAdapter(Class adapter) {
273
				if (String.class.equals(adapter)) {
274
					return GMFGraphVisualIDRegistry.getType(NodeNameEditPart.VISUAL_ID);
275
				}
276
				if (IElementType.class.equals(adapter)) {
277
					return GMFGraphElementTypes.Node_2002;
278
				}
279
				return null;
280
			}
281
		});
282
		if (parser != null) {
283
			return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue());
284
		} else {
285
			GMFGraphDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5002);
286
			return "";
287
		}
288
	}
289
290
	/**
291
	 * @generated
292
	 */
293
	private String getConnection_2003Text(View view) {
294
		IParser parser = ParserService.getInstance().getParser(new IAdaptable() {
295
296
			public Object getAdapter(Class adapter) {
297
				if (String.class.equals(adapter)) {
298
					return GMFGraphVisualIDRegistry.getType(ConnectionNameEditPart.VISUAL_ID);
299
				}
300
				if (IElementType.class.equals(adapter)) {
301
					return GMFGraphElementTypes.Connection_2003;
302
				}
303
				return null;
304
			}
305
		});
306
		if (parser != null) {
307
			return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue());
308
		} else {
309
			GMFGraphDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5003);
310
			return "";
311
		}
312
	}
313
314
	/**
315
	 * @generated
316
	 */
317
	private String getFigureGallery_2004Text(View view) {
318
		IParser parser = ParserService.getInstance().getParser(new IAdaptable() {
319
320
			public Object getAdapter(Class adapter) {
321
				if (String.class.equals(adapter)) {
322
					return GMFGraphVisualIDRegistry.getType(FigureGalleryNameEditPart.VISUAL_ID);
323
				}
324
				if (IElementType.class.equals(adapter)) {
325
					return GMFGraphElementTypes.FigureGallery_2004;
326
				}
327
				return null;
328
			}
329
		});
330
		if (parser != null) {
331
			return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), ParserOptions.NONE.intValue());
332
		} else {
333
			GMFGraphDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5004);
334
			return "";
335
		}
336
	}
337
338
	/**
339
	 * @generated
340
	 */
341
	private String getRectangle_3001Text(View view) {
342
		EObject domainModelElement = view.getElement();
343
		if (domainModelElement != null) {
344
			return ((Identity) domainModelElement).getName();
345
		} else {
346
			GMFGraphDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 3001);
347
			return "";
348
		}
349
	}
350
351
	/**
352
	 * @generated
353
	 */
354
	private String getRectangle_3002Text(View view) {
355
		EObject domainModelElement = view.getElement();
356
		if (domainModelElement != null) {
357
			return ((Identity) domainModelElement).getName();
358
		} else {
359
			GMFGraphDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 3002);
360
			return "";
361
		}
362
	}
363
364
	/**
365
	 * @generated
366
	 */
367
	private String getEllipse_3003Text(View view) {
368
		EObject domainModelElement = view.getElement();
369
		if (domainModelElement != null) {
370
			return ((Identity) domainModelElement).getName();
371
		} else {
372
			GMFGraphDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 3003);
373
			return "";
374
		}
375
	}
376
377
	/**
378
	 * @generated
379
	 */
380
	private String getRoundedRectangle_3004Text(View view) {
381
		EObject domainModelElement = view.getElement();
382
		if (domainModelElement != null) {
383
			return ((Identity) domainModelElement).getName();
384
		} else {
385
			GMFGraphDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 3004);
386
			return "";
387
		}
388
	}
389
390
	/**
391
	 * @generated
392
	 */
393
	private String getPolyline_3005Text(View view) {
394
		EObject domainModelElement = view.getElement();
395
		if (domainModelElement != null) {
396
			return ((Identity) domainModelElement).getName();
397
		} else {
398
			GMFGraphDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 3005);
399
			return "";
400
		}
401
	}
402
403
	/**
404
	 * @generated
405
	 */
406
	private String getEllipse_3006Text(View view) {
407
		EObject domainModelElement = view.getElement();
408
		if (domainModelElement != null) {
409
			return ((Identity) domainModelElement).getName();
410
		} else {
411
			GMFGraphDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 3006);
412
			return "";
413
		}
414
	}
415
416
	/**
417
	 * @generated
418
	 */
419
	private String getRoundedRectangle_3007Text(View view) {
420
		EObject domainModelElement = view.getElement();
421
		if (domainModelElement != null) {
422
			return ((Identity) domainModelElement).getName();
423
		} else {
424
			GMFGraphDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 3007);
425
			return "";
426
		}
427
	}
428
429
	/**
430
	 * @generated
431
	 */
432
	private String getPolyline_3008Text(View view) {
433
		EObject domainModelElement = view.getElement();
434
		if (domainModelElement != null) {
435
			return ((Identity) domainModelElement).getName();
436
		} else {
437
			GMFGraphDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 3008);
438
			return "";
439
		}
440
	}
441
442
	/**
443
	 * @generated
444
	 */
445
	private String getCanvas_1000Text(View view) {
446
		EObject domainModelElement = view.getElement();
447
		if (domainModelElement != null) {
448
			return ((Identity) domainModelElement).getName();
449
		} else {
450
			GMFGraphDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 1000);
451
			return "";
452
		}
453
	}
454
455
	/**
456
	 * @generated
457
	 */
458
	private String getDiagramElementFigure_4001Text(View view) {
459
		return "";
460
	}
461
462
	/**
463
	 * @generated
464
	 */
465
	private String getUnknownElementText(View view) {
466
		return "<UnknownElement Visual_ID = " + view.getType() + ">";
467
	}
468
469
	/**
470
	 * @generated
471
	 */
472
	public void init(ICommonContentExtensionSite aConfig) {
473
	}
474
475
	/**
476
	 * @generated
477
	 */
478
	public void restoreState(IMemento aMemento) {
479
	}
480
481
	/**
482
	 * @generated
483
	 */
484
	public void saveState(IMemento aMemento) {
485
	}
486
487
	/**
488
	 * @generated
489
	 */
490
	public String getDescription(Object anElement) {
491
		return null;
492
	}
493
494
	/**
495
	 * @generated
496
	 */
497
	private boolean isOwnView(View view) {
498
		return CanvasEditPart.MODEL_ID.equals(GMFGraphVisualIDRegistry.getModelID(view));
499
	}
500
501
}
(-)src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphNavigatorActionProvider.java (+158 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.navigator;
12
13
import org.eclipse.core.runtime.IAdaptable;
14
15
import org.eclipse.gmf.graphdef.editor.edit.parts.CanvasEditPart;
16
17
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditor;
18
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
19
import org.eclipse.gmf.graphdef.editor.part.GMFGraphVisualIDRegistry;
20
21
import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditorInput;
22
23
import org.eclipse.gmf.runtime.notation.Diagram;
24
import org.eclipse.gmf.runtime.notation.View;
25
26
import org.eclipse.jface.action.Action;
27
import org.eclipse.jface.action.IMenuManager;
28
29
import org.eclipse.jface.viewers.IStructuredSelection;
30
31
import org.eclipse.ui.IActionBars;
32
import org.eclipse.ui.IWorkbenchPage;
33
import org.eclipse.ui.PartInitException;
34
35
import org.eclipse.ui.navigator.CommonActionProvider;
36
import org.eclipse.ui.navigator.ICommonActionConstants;
37
import org.eclipse.ui.navigator.ICommonActionExtensionSite;
38
import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
39
40
/**
41
 * @generated
42
 */
43
public class GMFGraphNavigatorActionProvider extends CommonActionProvider {
44
45
	/**
46
	 * @generated
47
	 */
48
	private boolean myContribute;
49
50
	/**
51
	 * @generated
52
	 */
53
	private OpenDiagramAction myOpenDiagramAction;
54
55
	/**
56
	 * @generated
57
	 */
58
	public void init(ICommonActionExtensionSite aSite) {
59
		super.init(aSite);
60
		if (aSite.getViewSite() instanceof ICommonViewerWorkbenchSite) {
61
			myContribute = true;
62
			makeActions((ICommonViewerWorkbenchSite) aSite.getViewSite());
63
		} else {
64
			myContribute = false;
65
		}
66
	}
67
68
	/**
69
	 * @generated
70
	 */
71
	private void makeActions(ICommonViewerWorkbenchSite viewerSite) {
72
		myOpenDiagramAction = new OpenDiagramAction(viewerSite);
73
	}
74
75
	/**
76
	 * @generated
77
	 */
78
	public void fillActionBars(IActionBars actionBars) {
79
		if (!myContribute) {
80
			return;
81
		}
82
		IStructuredSelection selection = (IStructuredSelection) getContext().getSelection();
83
		myOpenDiagramAction.selectionChanged(selection);
84
		if (myOpenDiagramAction.isEnabled()) {
85
			actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN, myOpenDiagramAction);
86
		}
87
	}
88
89
	/**
90
	 * @generated
91
	 */
92
	public void fillContextMenu(IMenuManager menu) {
93
	}
94
95
	/**
96
	 * @generated
97
	 */
98
	private class OpenDiagramAction extends Action {
99
100
		/**
101
		 * @generated
102
		 */
103
		private Diagram myDiagram;
104
105
		/**
106
		 * @generated
107
		 */
108
		private ICommonViewerWorkbenchSite myViewerSite;
109
110
		/**
111
		 * @generated
112
		 */
113
		public OpenDiagramAction(ICommonViewerWorkbenchSite viewerSite) {
114
			super("Open Diagram");
115
			myViewerSite = viewerSite;
116
		}
117
118
		/**
119
		 * @generated
120
		 */
121
		public final void selectionChanged(IStructuredSelection selection) {
122
			myDiagram = null;
123
			if (selection.size() == 1) {
124
				Object selectedElement = selection.getFirstElement();
125
				if (selectedElement instanceof GMFGraphNavigatorItem) {
126
					selectedElement = ((GMFGraphNavigatorItem) selectedElement).getView();
127
				} else if (selectedElement instanceof IAdaptable) {
128
					selectedElement = ((IAdaptable) selectedElement).getAdapter(View.class);
129
				}
130
				if (selectedElement instanceof Diagram) {
131
					Diagram diagram = (Diagram) selectedElement;
132
					if (CanvasEditPart.MODEL_ID.equals(GMFGraphVisualIDRegistry.getModelID(diagram))) {
133
						myDiagram = diagram;
134
					}
135
				}
136
			}
137
			setEnabled(myDiagram != null);
138
		}
139
140
		/**
141
		 * @generated
142
		 */
143
		public void run() {
144
			if (myDiagram == null) {
145
				return;
146
			}
147
			DiagramEditorInput editorInput = new DiagramEditorInput(myDiagram);
148
			IWorkbenchPage page = myViewerSite.getPage();
149
			try {
150
				page.openEditor(editorInput, GMFGraphDiagramEditor.ID);
151
			} catch (PartInitException e) {
152
				GMFGraphDiagramEditorPlugin.getInstance().logError("Exception while openning diagram", e);
153
			}
154
		}
155
156
	}
157
158
}
(-)icons/outgoingLinksNavigatorGroup.gif (+5 lines)
Added Link Here
1
GIF89aÕÿÿ­r/‚Gø؈žf'øÐxøà˜øЀf>2èƔøè°èЈøðÈÿÿÿË6úöºøà øØ?Œ]Føè˜Ò«€üößãϹ´2àÀx­r+ðØ?¥l$yO@ž_­l$?R¼2ïßƼ…2Å6!ù,s@€pH,?È#âèh:‚¨T0ô4®
2
‹à‘?p©€Ñd¢Y`B‚¡‹p8G AØ%‚%HÁçW¶	_B†‰Š‹?’“’š??–B¥¦¥ B­®­©C³´µI·¸FA;Content-Type: image/gif
3
4
GIF89aÕÿÿ­r/‚Gø؈žf'øÐxøà˜øЀf>2èƔøè°èЈøðÈÿÿÿË6úöºøà øØ?Œ]Føè˜Ò«€üößãϹ´2àÀx­r+ðØ?¥l$yO@ž_­l$?R¼2ïßƼ…2Å6!ù,s@€pH,?È#âèh:‚¨T0ô4®
5
‹à‘?p©€Ñd¢Y`B‚¡‹p8G AØ%‚%HÁçW¶	_B†‰Š‹?’“’š??–B¥¦¥ B­®­©C³´µI·¸FA;
(-)src/org/eclipse/gmf/graphdef/editor/preferences/DiagramAppearancePreferencePage.java (+30 lines)
Added Link Here
1
/*
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.preferences;
12
13
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
14
import org.eclipse.gmf.runtime.diagram.ui.preferences.AppearancePreferencePage;
15
16
/**
17
 * @generated
18
 */
19
public class DiagramAppearancePreferencePage extends AppearancePreferencePage {
20
21
	/**
22
	 * @generated
23
	 */
24
	/**
25
	 * @generated
26
	 */
27
	public DiagramAppearancePreferencePage() {
28
		setPreferenceStore(GMFGraphDiagramEditorPlugin.getInstance().getPreferenceStore());
29
	}
30
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/commands/Ellipse2CreateCommand.java (+54 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.commands;
12
13
import org.eclipse.emf.ecore.EClass;
14
import org.eclipse.emf.ecore.EObject;
15
16
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
17
18
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
19
20
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
21
22
import org.eclipse.gmf.runtime.notation.View;
23
24
/**
25
 * @generated
26
 */
27
public class Ellipse2CreateCommand extends CreateElementCommand {
28
29
	/**
30
	 * @generated
31
	 */
32
	public Ellipse2CreateCommand(CreateElementRequest req) {
33
		super(req);
34
	}
35
36
	/**
37
	 * @generated
38
	 */
39
	protected EClass getEClassToEdit() {
40
		return GMFGraphPackage.eINSTANCE.getFigureGallery();
41
	};
42
43
	/**
44
	 * @generated
45
	 */
46
	protected EObject getElementToEdit() {
47
		EObject container = ((CreateElementRequest) getRequest()).getContainer();
48
		if (container instanceof View) {
49
			container = ((View) container).getElement();
50
		}
51
		return container;
52
	}
53
54
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/commands/RoundedRectangleCreateCommand.java (+54 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.commands;
12
13
import org.eclipse.emf.ecore.EClass;
14
import org.eclipse.emf.ecore.EObject;
15
16
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
17
18
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
19
20
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
21
22
import org.eclipse.gmf.runtime.notation.View;
23
24
/**
25
 * @generated
26
 */
27
public class RoundedRectangleCreateCommand extends CreateElementCommand {
28
29
	/**
30
	 * @generated
31
	 */
32
	public RoundedRectangleCreateCommand(CreateElementRequest req) {
33
		super(req);
34
	}
35
36
	/**
37
	 * @generated
38
	 */
39
	protected EClass getEClassToEdit() {
40
		return GMFGraphPackage.eINSTANCE.getFigure();
41
	};
42
43
	/**
44
	 * @generated
45
	 */
46
	protected EObject getElementToEdit() {
47
		EObject container = ((CreateElementRequest) getRequest()).getContainer();
48
		if (container instanceof View) {
49
			container = ((View) container).getElement();
50
		}
51
		return container;
52
	}
53
54
}
(-)src/org/eclipse/gmf/graphdef/editor/preferences/DiagramPrintingPreferencePage.java (+27 lines)
Added Link Here
1
/*
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.preferences;
12
13
import org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorPlugin;
14
import org.eclipse.gmf.runtime.diagram.ui.preferences.PrintingPreferencePage;
15
16
/**
17
 * @generated
18
 */
19
public class DiagramPrintingPreferencePage extends PrintingPreferencePage {
20
21
	/**
22
	 * @generated
23
	 */
24
	public DiagramPrintingPreferencePage() {
25
		setPreferenceStore(GMFGraphDiagramEditorPlugin.getInstance().getPreferenceStore());
26
	}
27
}
(-)src/org/eclipse/gmf/graphdef/editor/part/Messages.java (+247 lines)
Added Link Here
1
/*
2
 *  Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.part;
12
13
/**
14
 * @generated
15
 */
16
public class Messages extends org.eclipse.osgi.util.NLS {
17
18
	/**
19
	 * @generated
20
	 */
21
	static {
22
		org.eclipse.osgi.util.NLS.initializeMessages("messages", Messages.class); //$NON-NLS-1$
23
	}
24
25
	/**
26
	 * @generated
27
	 */
28
	private Messages() {
29
	}
30
31
	/**
32
	 * @generated
33
	 */
34
	public static String DiagramElements1Group_title;
35
36
	/**
37
	 * @generated
38
	 */
39
	public static String DiagramElements1Group_desc;
40
41
	/**
42
	 * @generated
43
	 */
44
	public static String Figures2Group_title;
45
46
	/**
47
	 * @generated
48
	 */
49
	public static String Figures2Group_desc;
50
51
	/**
52
	 * @generated
53
	 */
54
	public static String Node1CreationTool_title;
55
56
	/**
57
	 * @generated
58
	 */
59
	public static String Node1CreationTool_desc;
60
61
	/**
62
	 * @generated
63
	 */
64
	public static String ChildNode2CreationTool_title;
65
66
	/**
67
	 * @generated
68
	 */
69
	public static String ChildNode2CreationTool_desc;
70
71
	/**
72
	 * @generated
73
	 */
74
	public static String Compartment3CreationTool_title;
75
76
	/**
77
	 * @generated
78
	 */
79
	public static String Compartment3CreationTool_desc;
80
81
	/**
82
	 * @generated
83
	 */
84
	public static String Connection4CreationTool_title;
85
86
	/**
87
	 * @generated
88
	 */
89
	public static String Connection4CreationTool_desc;
90
91
	/**
92
	 * @generated
93
	 */
94
	public static String FigureLink5CreationTool_title;
95
96
	/**
97
	 * @generated
98
	 */
99
	public static String FigureLink5CreationTool_desc;
100
101
	/**
102
	 * @generated
103
	 */
104
	public static String FigureGallery1CreationTool_title;
105
106
	/**
107
	 * @generated
108
	 */
109
	public static String FigureGallery1CreationTool_desc;
110
111
	/**
112
	 * @generated
113
	 */
114
	public static String Rectangle2CreationTool_title;
115
116
	/**
117
	 * @generated
118
	 */
119
	public static String Rectangle2CreationTool_desc;
120
121
	/**
122
	 * @generated
123
	 */
124
	public static String Ellipse3CreationTool_title;
125
126
	/**
127
	 * @generated
128
	 */
129
	public static String Ellipse3CreationTool_desc;
130
131
	/**
132
	 * @generated
133
	 */
134
	public static String RoundedRectangle4CreationTool_title;
135
136
	/**
137
	 * @generated
138
	 */
139
	public static String RoundedRectangle4CreationTool_desc;
140
141
	/**
142
	 * @generated
143
	 */
144
	public static String Polyline5CreationTool_title;
145
146
	/**
147
	 * @generated
148
	 */
149
	public static String Polyline5CreationTool_desc;
150
151
	/**
152
	 * @generated
153
	 */
154
	public static String CompartmentVisualFacetsEditPart_title;
155
156
	/**
157
	 * @generated
158
	 */
159
	public static String NodeVisualFacetsEditPart_title;
160
161
	/**
162
	 * @generated
163
	 */
164
	public static String ConnectionVisualFacetsEditPart_title;
165
166
	/**
167
	 * @generated
168
	 */
169
	public static String FigureGalleryFiguresEditPart_title;
170
171
	/**
172
	 * @generated
173
	 */
174
	public static String CommandName_OpenDiagram;
175
176
	/**
177
	 * @generated
178
	 */
179
	public static String NavigatorGroupName_Canvas_1000_links;
180
181
	/**
182
	 * @generated
183
	 */
184
	public static String NavigatorGroupName_Compartment_2001_outgoinglinks;
185
186
	/**
187
	 * @generated
188
	 */
189
	public static String NavigatorGroupName_Node_2002_outgoinglinks;
190
191
	/**
192
	 * @generated
193
	 */
194
	public static String NavigatorGroupName_Connection_2003_outgoinglinks;
195
196
	/**
197
	 * @generated
198
	 */
199
	public static String NavigatorGroupName_Rectangle_3001_incominglinks;
200
201
	/**
202
	 * @generated
203
	 */
204
	public static String NavigatorGroupName_Rectangle_3002_incominglinks;
205
206
	/**
207
	 * @generated
208
	 */
209
	public static String NavigatorGroupName_Ellipse_3003_incominglinks;
210
211
	/**
212
	 * @generated
213
	 */
214
	public static String NavigatorGroupName_RoundedRectangle_3004_incominglinks;
215
216
	/**
217
	 * @generated
218
	 */
219
	public static String NavigatorGroupName_Polyline_3005_incominglinks;
220
221
	/**
222
	 * @generated
223
	 */
224
	public static String NavigatorGroupName_Ellipse_3006_incominglinks;
225
226
	/**
227
	 * @generated
228
	 */
229
	public static String NavigatorGroupName_RoundedRectangle_3007_incominglinks;
230
231
	/**
232
	 * @generated
233
	 */
234
	public static String NavigatorGroupName_Polyline_3008_incominglinks;
235
236
	/**
237
	 * @generated
238
	 */
239
	public static String NavigatorGroupName_DiagramElementFigure_4001_source;
240
241
	/**
242
	 * @generated
243
	 */
244
	public static String NavigatorGroupName_DiagramElementFigure_4001_target;
245
246
	//TODO: put accessor fields manually	
247
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/commands/EllipseCreateCommand.java (+54 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2006 Borland Software Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Borland Software Corporation - initial API and implementation
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.commands;
12
13
import org.eclipse.emf.ecore.EClass;
14
import org.eclipse.emf.ecore.EObject;
15
16
import org.eclipse.gmf.gmfgraph.GMFGraphPackage;
17
18
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand;
19
20
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
21
22
import org.eclipse.gmf.runtime.notation.View;
23
24
/**
25
 * @generated
26
 */
27
public class EllipseCreateCommand extends CreateElementCommand {
28
29
	/**
30
	 * @generated
31
	 */
32
	public EllipseCreateCommand(CreateElementRequest req) {
33
		super(req);
34
	}
35
36
	/**
37
	 * @generated
38
	 */
39
	protected EClass getEClassToEdit() {
40
		return GMFGraphPackage.eINSTANCE.getFigure();
41
	};
42
43
	/**
44
	 * @generated
45
	 */
46
	protected EObject getElementToEdit() {
47
		EObject container = ((CreateElementRequest) getRequest()).getContainer();
48
		if (container instanceof View) {
49
			container = ((View) container).getElement();
50
		}
51
		return container;
52
	}
53
54
}

Return to bug 173496