package org.nightlabs.jfire.reporting.admin.parameter.ui.command; import org.eclipse.gef.commands.Command; import org.nightlabs.jfire.reporting.admin.parameter.ui.notification.ModelNotificationManager; import org.nightlabs.jfire.reporting.admin.parameter.ui.resource.Messages; import org.nightlabs.jfire.reporting.admin.parameter.ui.util.ObjectIDProvider; import org.nightlabs.jfire.reporting.parameter.config.ValueAcquisitionSetup; import org.nightlabs.jfire.reporting.parameter.config.ValueConsumerBinding; /** * @author Daniel.Mazurek [at] NightLabs [dot] de * */ public class DeleteConnectionCommand extends Command { public DeleteConnectionCommand(ValueConsumerBinding binding, ValueAcquisitionSetup setup) { super(); if (binding == null) throw new IllegalArgumentException("Param binding must NOT be null!"); //$NON-NLS-1$ setLabel(Messages.getString("org.nightlabs.jfire.reporting.admin.parameter.ui.command.DeleteConnectionCommand.label")); //$NON-NLS-1$ this.valueConsumerBinding = binding; this.setup = setup; } private ValueConsumerBinding valueConsumerBinding; private ValueAcquisitionSetup setup; @Override public void execute() { // valueConsumerBinding.getSetup().getValueConsumerBindings().remove(valueConsumerBinding); setup.getValueConsumerBindings().remove(valueConsumerBinding); notifyEditParts(); } @Override public void redo() { execute(); } @Override public void undo() { // valueConsumerBinding.getSetup().getValueConsumerBindings().add(valueConsumerBinding); setup.getValueConsumerBindings().add(valueConsumerBinding); notifyEditParts(); } protected void notifyEditParts() { ModelNotificationManager.sharedInstance().notify( ObjectIDProvider.getObjectID(setup), ModelNotificationManager.PROP_CREATE_CONNECTION, null, valueConsumerBinding); ModelNotificationManager.sharedInstance().notify( ObjectIDProvider.getObjectID(valueConsumerBinding), ModelNotificationManager.PROP_CREATE_CONNECTION, null, valueConsumerBinding); ModelNotificationManager.sharedInstance().notify( ObjectIDProvider.getObjectID(valueConsumerBinding.getConsumer()), ModelNotificationManager.PROP_DELETE_CONNECTION, null, valueConsumerBinding); ModelNotificationManager.sharedInstance().notify( ObjectIDProvider.getObjectID(valueConsumerBinding.getProvider()), ModelNotificationManager.PROP_DELETE_CONNECTION, null, valueConsumerBinding); } }