/******************************************************************************* * Copyright (c) 2008 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.smooks.gef.tree.command; import org.eclipse.emf.edit.domain.EditingDomain; import org.eclipse.gef.commands.Command; /** * @author Dart (dpeng@redhat.com) * */ public class GEFAdapterCommand extends Command { protected org.eclipse.emf.common.command.Command emfCommand; protected EditingDomain domain; protected Object owner; protected Object collections; protected Object feature; protected int x; protected int y; protected int width; protected int height; public GEFAdapterCommand(EditingDomain domain, org.eclipse.emf.common.command.Command emfCommand) { this.emfCommand = emfCommand; this.domain = domain; } /** * @return the x */ public int getX() { return x; } /** * @param x * the x to set */ public void setX(int x) { this.x = x; } /** * @return the y */ public int getY() { return y; } /** * @param y * the y to set */ public void setY(int y) { this.y = y; } /** * @return the width */ public int getWidth() { return width; } /** * @param width * the width to set */ public void setWidth(int width) { this.width = width; } /** * @return the height */ public int getHeight() { return height; } /** * @param height * the height to set */ public void setHeight(int height) { this.height = height; } public Object getOwner() { return owner; } public void setOwner(Object owner) { this.owner = owner; } public Object getCollections() { return collections; } public void setCollections(Object collections) { this.collections = collections; } public Object getFeature() { return feature; } public void setFeature(Object feature) { this.feature = feature; } /* * (non-Javadoc) * * @see org.eclipse.gef.commands.Command#canExecute() */ @Override public boolean canExecute() { if (emfCommand != null) { return emfCommand.canExecute(); } return super.canExecute(); } /* * (non-Javadoc) * * @see org.eclipse.gef.commands.Command#canUndo() */ @Override public boolean canUndo() { if (emfCommand != null && domain != null) { if (domain.getCommandStack().getUndoCommand().equals(emfCommand)) { return emfCommand.canUndo(); } } return super.canUndo(); } /* * (non-Javadoc) * * @see org.eclipse.gef.commands.Command#dispose() */ @Override public void dispose() { if (emfCommand != null) { emfCommand.dispose(); return; } super.dispose(); } /* * (non-Javadoc) * * @see org.eclipse.gef.commands.Command#execute() */ @Override public void execute() { if (emfCommand != null && domain != null) { domain.getCommandStack().execute(emfCommand); return; } super.execute(); } /* * (non-Javadoc) * * @see org.eclipse.gef.commands.Command#getDebugLabel() */ @Override public String getDebugLabel() { return super.getDebugLabel(); } /* * (non-Javadoc) * * @see org.eclipse.gef.commands.Command#getLabel() */ @Override public String getLabel() { if (emfCommand != null) { return emfCommand.getLabel(); } return super.getLabel(); } /* * (non-Javadoc) * * @see org.eclipse.gef.commands.Command#redo() */ @Override public void redo() { if (emfCommand != null && domain != null) { if (domain.getCommandStack().getRedoCommand().equals(emfCommand)) { domain.getCommandStack().redo(); } } } /* * (non-Javadoc) * * @see org.eclipse.gef.commands.Command#setDebugLabel(java.lang.String) */ @Override public void setDebugLabel(String label) { super.setDebugLabel(label); } /* * (non-Javadoc) * * @see org.eclipse.gef.commands.Command#setLabel(java.lang.String) */ @Override public void setLabel(String label) { super.setLabel(label); } /* * (non-Javadoc) * * @see org.eclipse.gef.commands.Command#undo() */ @Override public void undo() { if (emfCommand != null && domain != null) { if (domain.getCommandStack().getUndoCommand().equals(emfCommand)) { try { domain.getCommandStack().undo(); } catch (Exception e) { e.printStackTrace(); } } else { } } super.undo(); } }