/*
* Copyright (C) Yutaka Matsuno 2010-2012 All rights reserved.
*/
package net.dependableos.dcase.diagram.part;
import net.dependableos.dcase.diagram.edit.parts.ArgumentEditPart;
import net.dependableos.dcase.diagram.edit.parts.custom.DcaseNodeEditPart;
import org.eclipse.gef.GraphicalEditPart;
import org.eclipse.gef.GraphicalViewer;
import org.eclipse.gef.KeyHandler;
import org.eclipse.gef.Request;
import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyEvent;
/**
* A key handler request the editpart to perform key event.
*/
public class DcaseDiagramKeyHandler extends KeyHandler {
/**
* the viewer.
*/
private GraphicalViewer viewer;
/**
* Allocates a DcaseDiagramKeyHandler object.
*
* @param viewer the viewer.
*/
public DcaseDiagramKeyHandler(GraphicalViewer viewer) {
this.viewer = viewer;
}
/**
* {@inheritDoc}
*/
@Override
public boolean keyPressed(KeyEvent event) {
switch (event.keyCode) {
case SWT.CR:
case SWT.KEYPAD_CR:
GraphicalEditPart editPart = (GraphicalEditPart) viewer
.getFocusEditPart();
if (editPart instanceof DcaseNodeEditPart
|| editPart instanceof ArgumentEditPart) {
// Create a Open Request and Perform Request
Request request = new Request(RequestConstants.REQ_OPEN);
editPart.performRequest(request);
return true;
}
default:
}
return super.keyPressed(event);
}
}