package org.nightlabs.jfire.personrelation.issuetracking.trade.ui.action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IViewActionDelegate;
import org.eclipse.ui.IViewPart;
import org.nightlabs.base.ui.wizard.DynamicPathWizardDialog;
import org.nightlabs.jfire.personrelation.ui.createrelation.CreatePersonRelationWizard;
import org.nightlabs.jfire.personrelation.ui.tree.PersonRelationTreeNode;
import org.nightlabs.jfire.prop.id.PropertySetID;
public class CreatePersonRelationAction implements IViewActionDelegate
{
private IViewPart view;
@Override
public void init(IViewPart view) {
this.view = view;
}
@Override
public void run(IAction action) {
PropertySetID personID = this.selectedPersonID;
if (personID == null)
return;
CreatePersonRelationWizard wizard = new CreatePersonRelationWizard(personID);
if (view != null)
new DynamicPathWizardDialog(view.getSite().getShell(), wizard).open(); // The safer way to instantiate the Wizard?
else
new DynamicPathWizardDialog(wizard).open();
}
private PropertySetID selectedPersonID = null;
@Override
public void selectionChanged(IAction action, ISelection selection) {
selectedPersonID = null;
PersonRelationTreeNode node = PersonRelationTreeNode.getPersonRelationTreeNodeFromSelection(selection);
if (node == null) {
action.setEnabled(false);
return;
}
selectedPersonID = node.getPropertySetID();
action.setEnabled(selectedPersonID != null);
}
}