Skip to content
Snippets Groups Projects
Commit d905681a authored by Kisslinger's avatar Kisslinger
Browse files

MSCs are now added to the report (as images)

refs 290
parent c6c831c6
No related branches found
No related tags found
No related merge requests found
...@@ -97,10 +97,10 @@ import org.fortiss.tooling.kernel.ui.util.EObjectSelectionUtils; ...@@ -97,10 +97,10 @@ import org.fortiss.tooling.kernel.ui.util.EObjectSelectionUtils;
* @author hoelzl * @author hoelzl
* @author $Author$ * @author $Author$
* @version $Rev$ * @version $Rev$
* @ConQAT.Rating GREEN Hash: D24DC3964E442C60B5F30A1EC8EBB3D0 * @ConQAT.Rating YELLOW Hash: 2D2A8FF3A3D4451380702E1183DFE746
*/ */
public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> implements
implements IPostSelectionProvider, ContextMenuContextProvider { IPostSelectionProvider, ContextMenuContextProvider {
/** Stores the viewer. */ /** Stores the viewer. */
protected EditPartViewer viewer = new ScrollingGraphicalViewer(); protected EditPartViewer viewer = new ScrollingGraphicalViewer();
...@@ -130,8 +130,7 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -130,8 +130,7 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
/** {@inheritDoc} */ /** {@inheritDoc} */
@Override @Override
public void init(IEditorSite site, IEditorInput input) public void init(IEditorSite site, IEditorInput input) throws PartInitException {
throws PartInitException {
super.init(site, input); super.init(site, input);
getSite().getWorkbenchWindow().getSelectionService() getSite().getWorkbenchWindow().getSelectionService()
...@@ -142,17 +141,16 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -142,17 +141,16 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
/** {@inheritDoc} */ /** {@inheritDoc} */
@Override @Override
public EObject getSelectedModelElement() { public EObject getSelectedModelElement() {
if (getSite().getSelectionProvider() != null) { if(getSite().getSelectionProvider() != null) {
return EObjectSelectionUtils.getFirstElement(getSite() return EObjectSelectionUtils.getFirstElement(getSite().getSelectionProvider()
.getSelectionProvider().getSelection()); .getSelection());
} }
return null; return null;
} }
/** Creates the context menu. */ /** Creates the context menu. */
private void createContextMenu() { private void createContextMenu() {
MenuManager menuManager = IContextMenuService.INSTANCE MenuManager menuManager = IContextMenuService.INSTANCE.createDefaultContextMenu(this);
.createDefaultContextMenu(this);
Menu contextMenu = menuManager.createContextMenu(viewer.getControl()); Menu contextMenu = menuManager.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(contextMenu); viewer.getControl().setMenu(contextMenu);
...@@ -181,18 +179,16 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -181,18 +179,16 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
createZoomSupport(); createZoomSupport();
// drag and drop // drag and drop
viewer.addDropTargetListener(new ElementCompositionDropTargetListener( viewer.addDropTargetListener(new ElementCompositionDropTargetListener(viewer));
viewer));
viewer.getControl().setBackground(parent.getBackground()); viewer.getControl().setBackground(parent.getBackground());
if (enableSnapToGrid()) { if(enableSnapToGrid()) {
viewer.setProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED, true); viewer.setProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED, true);
viewer.setProperty(SnapToGrid.PROPERTY_GRID_ORIGIN, new Point( viewer.setProperty(SnapToGrid.PROPERTY_GRID_ORIGIN, new Point(DEFAULT_GRID_ORIGIN_X,
DEFAULT_GRID_ORIGIN_X, DEFAULT_GRID_ORIGIN_Y)); DEFAULT_GRID_ORIGIN_Y));
Dimension gridSpacing = new Dimension(DEFAULT_GRID_SIZE, Dimension gridSpacing = new Dimension(DEFAULT_GRID_SIZE, DEFAULT_GRID_SIZE);
DEFAULT_GRID_SIZE);
viewer.setProperty(SnapToGrid.PROPERTY_GRID_SPACING, gridSpacing); viewer.setProperty(SnapToGrid.PROPERTY_GRID_SPACING, gridSpacing);
viewer.setProperty(SnapToGrid.PROPERTY_GRID_ENABLED, true); viewer.setProperty(SnapToGrid.PROPERTY_GRID_ENABLED, true);
viewer.setProperty(SnapToGrid.PROPERTY_GRID_VISIBLE, true); viewer.setProperty(SnapToGrid.PROPERTY_GRID_VISIBLE, true);
...@@ -200,12 +196,11 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -200,12 +196,11 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
// this is needed by direct connection feature. the root edit part // this is needed by direct connection feature. the root edit part
// becomes transparent when GEF selects a tool on button down event. // becomes transparent when GEF selects a tool on button down event.
// we have to relocate the call to the underlying root's content // we have to relocate the call to the underlying root's content
((ScalableRootEditPart) viewer.getRootEditPart()).installEditPolicy( ((ScalableRootEditPart)viewer.getRootEditPart()).installEditPolicy("Test",
"Test", new AbstractEditPolicy() { new AbstractEditPolicy() {
@Override @Override
public EditPart getTargetEditPart(Request request) { public EditPart getTargetEditPart(Request request) {
return getHost().getRoot().getContents() return getHost().getRoot().getContents().getTargetEditPart(request);
.getTargetEditPart(request);
} }
}); });
} }
...@@ -220,8 +215,8 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -220,8 +215,8 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
} }
/** /**
* Returns whether snap-to-grid should be enabled. The default is * Returns whether snap-to-grid should be enabled. The default is <code>true</code>. IMPORTANT:
* <code>true</code>. IMPORTANT: The return value provided here must match * The return value provided here must match
* the value of {@link IDiagramLayoutConfiguration#useGrid()} provided by * the value of {@link IDiagramLayoutConfiguration#useGrid()} provided by
* the {@link DiagramEditPartBase} of the diagram element. * the {@link DiagramEditPartBase} of the diagram element.
*/ */
...@@ -235,14 +230,13 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -235,14 +230,13 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
/** Installs zoom suport for this graphical viewer. */ /** Installs zoom suport for this graphical viewer. */
private void createZoomSupport() { private void createZoomSupport() {
RootEditPart rootPart = viewer.getRootEditPart(); RootEditPart rootPart = viewer.getRootEditPart();
if (rootPart instanceof ScalableFreeformRootEditPart) { if(rootPart instanceof ScalableFreeformRootEditPart) {
zoomManager = ((ScalableFreeformRootEditPart) rootPart) zoomManager = ((ScalableFreeformRootEditPart)rootPart).getZoomManager();
.getZoomManager(); } else if(viewer.getRootEditPart() instanceof ScalableRootEditPart) {
} else if (viewer.getRootEditPart() instanceof ScalableRootEditPart) { zoomManager = ((ScalableRootEditPart)rootPart).getZoomManager();
zoomManager = ((ScalableRootEditPart) rootPart).getZoomManager();
} }
if (zoomManager != null) { if(zoomManager != null) {
zoomManager.setZoomLevelContributions(getZoomLevelContributions()); zoomManager.setZoomLevelContributions(getZoomLevelContributions());
registerZoomAction(); registerZoomAction();
} }
...@@ -274,11 +268,11 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -274,11 +268,11 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
@Override @Override
public Object getAdapter(Class adapter) { public Object getAdapter(Class adapter) {
// This is called, e.g., from the PrintAction // This is called, e.g., from the PrintAction
if (adapter == GraphicalViewer.class) { if(adapter == GraphicalViewer.class) {
return viewer; return viewer;
} }
// This adapter is required for the ZoomComboContributionItem // This adapter is required for the ZoomComboContributionItem
if (adapter == ZoomManager.class) { if(adapter == ZoomManager.class) {
return getZoomManager(); return getZoomManager();
} }
return super.getAdapter(adapter); return super.getAdapter(adapter);
...@@ -304,8 +298,8 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -304,8 +298,8 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
/** /**
* Default zoom level contributions. * Default zoom level contributions.
*/ */
private static final List<String> defaultZoomLevelContribution = Arrays private static final List<String> defaultZoomLevelContribution = Arrays.asList(new String[] {
.asList(new String[] { FIT_ALL, FIT_WIDTH, FIT_HEIGHT }); FIT_ALL, FIT_WIDTH, FIT_HEIGHT});
/** Registers global actions (including zoom action). */ /** Registers global actions (including zoom action). */
@Override @Override
...@@ -348,7 +342,7 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -348,7 +342,7 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
* prevent the action registering. * prevent the action registering.
*/ */
protected void registerEditActions() { protected void registerEditActions() {
registerSelectionAction(new DeleteAction((IWorkbenchPart) this)); registerSelectionAction(new DeleteAction((IWorkbenchPart)this));
} }
/** Registers and returns the id of the given selection action */ /** Registers and returns the id of the given selection action */
...@@ -367,15 +361,15 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -367,15 +361,15 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
} }
/** Updates a list of actions. */ /** Updates a list of actions. */
@SuppressWarnings({ "rawtypes", "unchecked" }) @SuppressWarnings({"rawtypes", "unchecked"})
private void updateActions(List<String> actionIds) { private void updateActions(List<String> actionIds) {
EObject element = getSelectedModelElement(); EObject element = getSelectedModelElement();
for (String id : actionIds) { for(String id : actionIds) {
IAction action = actionRegistry.getAction(id); IAction action = actionRegistry.getAction(id);
if (action instanceof UpdateAction) { if(action instanceof UpdateAction) {
((UpdateAction) action).update(); ((UpdateAction)action).update();
} else if (action instanceof EObjectActionBase) { } else if(action instanceof EObjectActionBase) {
((EObjectActionBase) action).refresh(element); ((EObjectActionBase)action).refresh(element);
} }
} }
} }
...@@ -398,15 +392,13 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -398,15 +392,13 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
/** {@inheritDoc} */ /** {@inheritDoc} */
@Override @Override
public void addPostSelectionChangedListener( public void addPostSelectionChangedListener(ISelectionChangedListener listener) {
ISelectionChangedListener listener) {
viewer.addSelectionChangedListener(listener); viewer.addSelectionChangedListener(listener);
} }
/** {@inheritDoc} */ /** {@inheritDoc} */
@Override @Override
public void removePostSelectionChangedListener( public void removePostSelectionChangedListener(ISelectionChangedListener listener) {
ISelectionChangedListener listener) {
viewer.removeSelectionChangedListener(listener); viewer.removeSelectionChangedListener(listener);
} }
...@@ -424,8 +416,7 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -424,8 +416,7 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
/** {@inheritDoc} */ /** {@inheritDoc} */
@Override @Override
public void removeSelectionChangedListener( public void removeSelectionChangedListener(ISelectionChangedListener listener) {
ISelectionChangedListener listener) {
viewer.removeSelectionChangedListener(listener); viewer.removeSelectionChangedListener(listener);
} }
...@@ -439,8 +430,8 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -439,8 +430,8 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
@Override @Override
public void setHighlight(EObject element, boolean highlighted) { public void setHighlight(EObject element, boolean highlighted) {
EditPart ep = findEditPart(viewer.getRootEditPart(), element); EditPart ep = findEditPart(viewer.getRootEditPart(), element);
if (ep instanceof AbstractGraphicalEditPart) { if(ep instanceof AbstractGraphicalEditPart) {
IFigure fig = ((AbstractGraphicalEditPart) ep).getFigure(); IFigure fig = ((AbstractGraphicalEditPart)ep).getFigure();
setHighlight(fig, highlighted); setHighlight(fig, highlighted);
} }
} }
...@@ -450,10 +441,9 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -450,10 +441,9 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
* can be changed by more specific editors. * can be changed by more specific editors.
*/ */
protected void setHighlight(IFigure fig, boolean highlighted) { protected void setHighlight(IFigure fig, boolean highlighted) {
if (highlighted) { if(highlighted) {
if (!highlightedFigures2NormalColor.containsKey(fig)) { if(!highlightedFigures2NormalColor.containsKey(fig)) {
highlightedFigures2NormalColor.put(fig, highlightedFigures2NormalColor.put(fig, fig.getForegroundColor());
fig.getForegroundColor());
fig.setForegroundColor(ColorConstants.red); fig.setForegroundColor(ColorConstants.red);
} }
} else { } else {
...@@ -475,24 +465,24 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -475,24 +465,24 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private EditPart findEditPart(EditPart container, EObject element) { private EditPart findEditPart(EditPart container, EObject element) {
if (container.getModel().equals(element)) { if(container.getModel().equals(element)) {
return container; return container;
} }
List<EditPart> subEditParts = new ArrayList<EditPart>(); List<EditPart> subEditParts = new ArrayList<EditPart>();
if (container.getChildren() != null) { if(container.getChildren() != null) {
subEditParts.addAll(container.getChildren()); subEditParts.addAll(container.getChildren());
} }
if (container instanceof ConnectorEditPartBase) { if(container instanceof ConnectorEditPartBase) {
ConnectorEditPartBase<?> connector = (ConnectorEditPartBase<?>) container; ConnectorEditPartBase<?> connector = (ConnectorEditPartBase<?>)container;
if (connector.getSourceConnections() != null) { if(connector.getSourceConnections() != null) {
subEditParts.addAll(connector.getSourceConnections()); subEditParts.addAll(connector.getSourceConnections());
} }
} }
for (EditPart child : subEditParts) { for(EditPart child : subEditParts) {
EditPart foundEditPart = findEditPart(child, element); EditPart foundEditPart = findEditPart(child, element);
if (foundEditPart != null) { if(foundEditPart != null) {
return foundEditPart; return foundEditPart;
} }
} }
...@@ -503,11 +493,15 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> ...@@ -503,11 +493,15 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T>
/** {@inheritDoc} */ /** {@inheritDoc} */
@Override @Override
public void clearAllHighlights() { public void clearAllHighlights() {
Set<IFigure> figs = new HashSet<IFigure>( Set<IFigure> figs = new HashSet<IFigure>(highlightedFigures2NormalColor.keySet());
highlightedFigures2NormalColor.keySet());
for (IFigure figure : figs) { for(IFigure figure : figs) {
setHighlight(figure, false); setHighlight(figure, false);
} }
} }
/** Returns viewer. */
public EditPartViewer getViewer() {
return viewer;
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment