/*
Copyright (C) 2009 by Claas Wilke (claaswilke@gmx.net).
This file is part of the Model Bus GUI of Dresden OCL2 for Eclipse.
Dresden OCL2 for Eclipse is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your option)
any later version.
Dresden OCL2 for Eclipse is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
for more details.
You should have received a copy of the GNU Lesser General Public License along
with Dresden OCL2 for Eclipse. If not, see <http://www.gnu.org/licenses/>.
*/
package org.dresdenocl.modelbus.ui.internal.views.util;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.dresdenocl.model.IModel;
import org.dresdenocl.modelbus.ModelBusPlugin;
import org.dresdenocl.modelbus.ui.internal.views.ModelInstancesView;
import org.dresdenocl.modelinstance.IModelInstance;
/**
* <p>
* Represents menu items to select {@link IModelInstance}s to be shown in the
* {@link ModelInstancesView}.
* </p>
*
* @author Claas Wilke
*/
public class ModelInstanceSelectionAction extends Action implements IAction {
/** The {@link IModelInstance} of this {@link Action}. */
private IModelInstance myModelInstance;
/** The {@link IModel} of this {@link Action}. */
private IModel myModel;
/**
* <p>
* Instantiates a {@link ModelInstanceSelectionAction}.
* </p>
*
* @param model
* The {@link IModel} of the new {@link Action}.
* @param modelInstance
* The {@link IModelInstance} of the new {@link Action}.
*/
public ModelInstanceSelectionAction(IModel model,
IModelInstance modelInstance) {
super(modelInstance.getDisplayName(), IAction.AS_RADIO_BUTTON);
this.myModel = model;
this.myModelInstance = modelInstance;
this.setId(modelInstance.toString());
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.Action#run()
*/
public void run() {
ModelBusPlugin.getModelInstanceRegistry().setActiveModelInstance(
this.myModel, this.myModelInstance);
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
public String toString() {
String result;
result = new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE)
.append("modelInstance", myModelInstance).toString();
return result;
}
}