package org.objectstyle.wolips.eomodeler.editors;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.operations.RedoActionHandler;
import org.eclipse.ui.operations.UndoActionHandler;
import org.objectstyle.wolips.eomodeler.actions.CopyAction;
import org.objectstyle.wolips.eomodeler.actions.CutAction;
import org.objectstyle.wolips.eomodeler.actions.DeleteAction;
import org.objectstyle.wolips.eomodeler.actions.PasteAction;
public class EOModelClipboardHandler implements ISelectionChangedListener {
private CutAction _cutAction;
private CopyAction _copyAction;
private PasteAction _pasteAction;
private DeleteAction _deleteAction;
public EOModelClipboardHandler() {
_cutAction = new CutAction();
_copyAction = new CopyAction();
_pasteAction = new PasteAction();
_deleteAction = new DeleteAction();
}
public void attach(IActionBars actionBars, final EOModelEditor editor) {
if (actionBars != null && editor != null) {
// actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(),
// getAction(editor, ITextEditorActionConstants.UNDO));
// actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(),
// getAction(editor, ITextEditorActionConstants.REDO));
actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), _deleteAction);
actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(), _cutAction);
actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), _copyAction);
actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), _pasteAction);
actionBars.setGlobalActionHandler(ActionFactory.REVERT.getId(), new Action() {
public void run() {
editor.revert();
}
});
actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(), new UndoActionHandler(editor.getSite(), editor.getUndoContext()));
actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(), new RedoActionHandler(editor.getSite(), editor.getUndoContext()));
// actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(),
// getAction(editor, ITextEditorActionConstants.SELECT_ALL));
// actionBars.setGlobalActionHandler(ActionFactory.FIND.getId(),
// getAction(editor, ITextEditorActionConstants.FIND));
// actionBars.setGlobalActionHandler(IDEActionFactory.BOOKMARK.getId(),
// getAction(editor, IDEActionFactory.BOOKMARK.getId()));
// actionBars.updateActionBars();
}
}
public void selectionChanged(SelectionChangedEvent event) {
ISelection selection = event.getSelection();
_cutAction.selectionChanged(null, selection);
_copyAction.selectionChanged(null, selection);
_pasteAction.selectionChanged(null, selection);
_deleteAction.selectionChanged(null, selection);
}
}