| //------------------------------------------------------------------------------ |
| // Copyright (c) 2005, 2008 IBM Corporation and others. |
| // All rights reserved. This program and the accompanying materials |
| // are 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: |
| // IBM Corporation - initial implementation |
| //------------------------------------------------------------------------------ |
| package org.eclipse.epf.authoring.ui.actions; |
| |
| import java.util.ArrayList; |
| import java.util.Collection; |
| import java.util.Iterator; |
| |
| import org.eclipse.epf.authoring.ui.AuthoringUIResources; |
| import org.eclipse.epf.authoring.ui.actions.LibraryViewSimpleAction.CustomeCategoryAction; |
| import org.eclipse.epf.authoring.ui.dialogs.AssignDialog; |
| import org.eclipse.epf.authoring.ui.views.LibraryView; |
| import org.eclipse.epf.library.edit.util.TngUtil; |
| import org.eclipse.epf.uma.CustomCategory; |
| import org.eclipse.epf.uma.MethodElement; |
| import org.eclipse.jface.viewers.IStructuredSelection; |
| |
| /** |
| * Assign method element. |
| * |
| * @author Weiping Lu |
| * @since 1.5 |
| */ |
| public class AssignAction extends CustomeCategoryAction { |
| |
| /** |
| * Creates an instance |
| * @param text |
| */ |
| public AssignAction(LibraryView libView) { |
| super(libView, AuthoringUIResources.assignAction_text); |
| } |
| |
| protected void doRun() { |
| Collection elementsToAssign = new ArrayList(); |
| IStructuredSelection selection = (IStructuredSelection) getLibraryView().getSelection(); |
| for (Iterator iter = selection.iterator(); iter.hasNext();) { |
| Object element = iter.next(); |
| if (element instanceof MethodElement |
| || (element = TngUtil.unwrap(element)) instanceof CustomCategory) { |
| elementsToAssign.add(element); |
| } |
| } |
| |
| AssignDialog dlg = getDialog(elementsToAssign); |
| dlg.open(); |
| } |
| |
| protected AssignDialog getDialog(Collection elements) { |
| return AssignDialog.newAssignDialog(getLibraryView().getSite().getShell(), elements); |
| } |
| |
| /** |
| * @param selection |
| * @return |
| */ |
| public boolean updateSelection(IStructuredSelection selection) { |
| //return false; |
| return canAssign(selection); |
| } |
| |
| /** |
| * Returns <code>true</code> if the selected method elements can be assigned. |
| */ |
| private boolean canAssign(IStructuredSelection selection) { |
| if (selection.size() > 1) { |
| return false; |
| } |
| Object element = TngUtil.unwrap(selection.getFirstElement()); |
| if (element instanceof CustomCategory) { |
| return getSelectionParentObject() instanceof CustomCategory; |
| } |
| |
| return false; |
| } |
| |
| } |