//------------------------------------------------------------------------------ // Copyright (c) 2005, 2006 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.library.edit.ui; import java.util.List; import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.emf.edit.provider.IItemLabelProvider; import org.eclipse.epf.library.edit.LibraryEditResources; import org.eclipse.epf.library.edit.TngAdapterFactory; import org.eclipse.epf.library.edit.command.IUserInteractionHandler; import org.eclipse.epf.library.edit.util.AdapterFactoryItemLabelProvider; import org.eclipse.epf.library.edit.util.ExtensionManager; import org.eclipse.epf.uma.Descriptor; import org.eclipse.osgi.util.NLS; /** * UI Dialog class which will give user to select references to be deleted * * @author Shilpa Toraskar * @since 1.0 */ public class ReferenceSelection { public static Object[] getReferences(List ref, Descriptor desc) { return getReferences(ref, NLS.bind(LibraryEditResources.ui_ref_delete, desc.getName())); } /** * Shows dialog box for all references to be deleted for the given * descriptor. These references are not being used anywhere else. * * @param ref * @return */ public static Object[] getReferences(List ref) { String message = LibraryEditResources.ui_ref_delete2; try { return getReferences(ref, message); } catch (OperationCanceledException e) { return null; } } /** * It shows selection dialog box with list of reference (<code>ref</code>) * for user to select. * * @param ref * @return * @exception OperationCanceledException * if user canceled */ public static Object[] getReferences(List ref, String msg) throws OperationCanceledException { // IStructuredContentProvider contentProvider = new // AdapterFactoryContentProvider( // TngAdapterFactory.INSTANCE // .getNavigatorView_ComposedAdapterFactory()) { // public Object[] getElements(Object object) { // return ((List) object).toArray(); // } // }; // ILabelProvider labelProvider = new AdapterFactoryLabelProvider( // TngAdapterFactory.INSTANCE // .getNavigatorView_ComposedAdapterFactory()); // // try { // ProcessListSelectionDialog dlg = new // ProcessListSelectionDialog(PlatformUI // .getWorkbench().getActiveWorkbenchWindow().getShell(), ref, // contentProvider, labelProvider, msg); // // dlg.setTitle(LibraryEditResources.ui_references); //$NON-NLS-1$ // dlg.setBlockOnOpen(true); // if (dlg.open() == Dialog.CANCEL) { // throw new OperationCanceledException(); // } // Object objs[] = dlg.getResult(); // return objs; // } finally { // contentProvider.dispose(); // labelProvider.dispose(); // } IUserInteractionHandler uiHandler = ExtensionManager .getDefaultUserInteractionHandler(); if (uiHandler != null) { IItemLabelProvider labelProvider = new AdapterFactoryItemLabelProvider( TngAdapterFactory.INSTANCE .getNavigatorView_ComposedAdapterFactory()); String title = LibraryEditResources.ui_references; List selected = uiHandler.select(ref, labelProvider, true, ref, title, msg); if (selected == null) { throw new OperationCanceledException(); } return selected.toArray(); } // no user interaction handler available // return the entire reference list // return ref.toArray(); } }