package org.nightlabs.jfire.trade.ui.overview.repository.action;
import javax.jdo.JDOHelper;
import org.eclipse.ui.PartInitException;
import org.nightlabs.base.ui.action.WorkbenchPartSelectionAction;
import org.nightlabs.base.ui.util.RCPUtil;
import org.nightlabs.jfire.trade.ui.repository.editor.RepositoryEditor;
import org.nightlabs.jfire.trade.ui.repository.editor.RepositoryEditorInput;
import org.nightlabs.jfire.transfer.id.AnchorID;
public class EditRepositoryAction
extends WorkbenchPartSelectionAction
{
public boolean calculateEnabled()
{
return !getSelectedObjects().isEmpty();
}
public boolean calculateVisible()
{
return true;
}
@Override
public void run()
{
if (getSelectedObjects().isEmpty())
return;
RepositoryEditorInput input = new RepositoryEditorInput((AnchorID) JDOHelper.getObjectId(getSelectedObjects().get(0)));
try {
RCPUtil.openEditor(
input,
RepositoryEditor.EDITOR_ID);
} catch (PartInitException e) {
throw new RuntimeException(e); // escalate = leave any action to our exception-handling registry
}
}
}