Example usage for org.eclipse.jface.viewers IStructuredContentProvider dispose

List of usage examples for org.eclipse.jface.viewers IStructuredContentProvider dispose

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers IStructuredContentProvider dispose.

Prototype

default public void dispose() 

Source Link

Document

Disposes of this content provider.

Usage

From source file:org.ebayopensource.turmeric.eclipse.ui.components.AbstractSOAServiceListViewer.java

License:Open Source License

/**
 * Creates the control./*from ww  w .  j  a  v  a  2 s .c o m*/
 *
 * @param parent the parent
 * @param availableServices the available services
 * @return the composite
 * @throws CoreException the core exception
 */
public Composite createControl(final Composite parent, final Collection<EnvironmentItem> availableServices)
        throws CoreException {
    final Composite container = new Composite(parent, SWT.None);
    GridLayout layout = new GridLayout(1, false);
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    container.setLayout(layout);
    container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1));

    new Label(container, SWT.LEFT).setText("&Client Configurations:");

    Composite servicelistPanel = new Composite(container, SWT.NONE);
    layout = new GridLayout(2, false);
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    servicelistPanel.setLayout(layout);
    servicelistPanel.setLayoutData(new GridData(GridData.FILL_BOTH));

    serviceList = new SOAConsumerServicesViewer(servicelistPanel, true, isZeroConfig);
    final Tree tree = serviceList.getTree();

    tree.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            widgetSelected(e);
        }

        @Override
        public void widgetSelected(SelectionEvent e) {
            Object obj = getSelectedObject();
            boolean selectEnv = obj instanceof EnvironmentItem;
            if (removeEnvButton != null) {
                removeEnvButton.setEnabled(selectEnv);
            }
            removeServiceButton.setEnabled(!selectEnv);
        }
    });
    serviceList.setInput(availableServices);

    final Composite buttonComposite = new Composite(servicelistPanel, SWT.None);
    buttonComposite.setLayout(new GridLayout(1, true));
    buttonComposite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL));

    if (isZeroConfig() == false) {
        addEnvButton = new Button(buttonComposite, SWT.PUSH);
        addEnvButton.setText("Add Environment...");
        final List<String> existingEnvs = SOAConsumerUtil.getClientEnvironmentList(project, null);
        addEnvButton.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                SOAClientConfigEnvironmentDialog dialog = new SOAClientConfigEnvironmentDialog(
                        UIUtil.getActiveShell(), getServiceInfoList(), existingEnvs);
                if (dialog.open() == Window.OK) {
                    List<EnvironmentItem> items = getServiceInfoList();
                    EnvironmentItem item = new EnvironmentItem(dialog.getEnvironmentName());
                    if (items.isEmpty() == false) {
                        //already has enviroment defined
                        item.setServiceData(items.get(0).getServiceData());
                        item.setServices(items.get(0).getServices());
                    }
                    items.add(item);
                    serviceList.setInput(items);
                    enviromentAdded(dialog.getEnvironmentName(), dialog.getCloneEnvironment());
                }
            }
        });

        removeEnvButton = new Button(buttonComposite, SWT.PUSH);
        removeEnvButton.setText("Remove Environment");
        removeEnvButton.setEnabled(false);
        removeEnvButton.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                Object obj = ((IStructuredSelection) serviceList.getSelection()).getFirstElement();
                if (obj instanceof EnvironmentItem) {
                    List<EnvironmentItem> items = getServiceInfoList();
                    items.remove(obj);
                    serviceList.setInput(items);
                    removeEnvButton.setEnabled(false);
                    environmentRemoved((EnvironmentItem) obj);
                }
            }
        });

        new Label(buttonComposite, SWT.NONE);
    }

    addServiceButton = new Button(buttonComposite, SWT.PUSH);
    addServiceButton.setText("&Add Service...");

    final SelectionListener selectionListener = new SelectionListener() {
        public void widgetDefaultSelected(final SelectionEvent e) {
            widgetSelected(e);
        }

        public void widgetSelected(final SelectionEvent e) {
            if (serviceList.getTree().getItemCount() == 0) {
                MessageDialog.openError(UIUtil.getActiveShell(), "Error",
                        "Please add an environment before adding services");
                return;
            }

            final DependenciesDialog dialog = new DependenciesDialog(UIUtil.getActiveShell(), "Select Service",
                    "Select services to create client", null, true, helpID) {
                @Override
                protected IStructuredContentProvider getContentProvider() {

                    final IStructuredContentProvider delegate = super.getContentProvider();
                    final IStructuredContentProvider provider = new IStructuredContentProvider() {
                        public Object[] getElements(final Object inputElement) {

                            // this should be all avaialbe services for the
                            // current repository system
                            if (allAvailableServiecs == null) {
                                final Object[] elements = delegate.getElements(inputElement);
                                allAvailableServiecs = new ConcurrentHashMap<String, ProjectInfo>(
                                        elements.length);
                                for (Object obj : elements) {
                                    if (obj instanceof ProjectInfo) {
                                        final ProjectInfo info = (ProjectInfo) obj;
                                        allAvailableServiecs.put(info.getDescription(), info);
                                    }
                                }
                            }
                            // Removing incompatible services due to service
                            // layer constraints.
                            final Collection<AssetInfo> includedServices = new ArrayList<AssetInfo>();
                            final List<EnvironmentItem> items = getServiceInfoList();
                            if (items.size() > 0) {
                                for (String serviceName : items.get(0).getServices()) {
                                    Loop: for (ProjectInfo info : allAvailableServiecs.values()) {
                                        if (info.equals(serviceName)) {
                                            includedServices.add(info);
                                            break Loop;
                                        }
                                    }
                                }
                            }

                            final Collection<AssetInfo> result = new ArrayList<AssetInfo>();
                            final ISOAAssetRegistry assetRegistry = GlobalRepositorySystem.instanceOf()
                                    .getActiveRepositorySystem().getAssetRegistry();
                            try {
                                if (project != null && TurmericServiceUtils.isSOAImplProject(project)) {
                                    //existing impl project
                                    //we should only show services which are compatible for the underlying service 
                                    final ISOAProject soaProject = assetRegistry.getSOAProject(project);
                                    if (soaProject instanceof SOAImplProject) {
                                        final SOAImplProject implProject = (SOAImplProject) soaProject;
                                        final SOAIntfMetadata metadata = implProject.getMetadata()
                                                .getIntfMetadata();
                                        final String layer = metadata.getServiceLayer();
                                        for (final ProjectInfo info : allAvailableServiecs.values()) {
                                            if (SOAServiceUtil.validateServiceLayer(layer,
                                                    info.getServiceLayer()) == true
                                                    && includedServices.contains(info) == false && metadata
                                                            .getServiceName().equals(info.getName()) == false)
                                                result.add(info);
                                        }
                                    }
                                } else {
                                    //It is a consumer or a new project, can consume any services which have valid layers
                                    for (final ProjectInfo info : allAvailableServiecs.values()) {
                                        if (SOAServiceUtil.isValidServiceLayer(info.getServiceLayer()) == true
                                                && includedServices.contains(info.getDescription()) == false) {
                                            if (isZeroConfig == false) {
                                                result.add(info);
                                            } else {
                                                final String assetLocation = assetRegistry
                                                        .getAssetLocation(info);
                                                final SOAIntfMetadata metadata = SOAIntfUtil
                                                        .loadIntfMetadata(assetLocation, info.getName());
                                                if (metadata.isZeroConfig()) {
                                                    result.add(info);
                                                }
                                            }

                                        }
                                    }
                                }
                            } catch (Exception e) {
                                SOALogger.getLogger().error(e);
                                UIUtil.showErrorDialog(e);
                                return result.toArray();
                            }

                            return result.toArray();
                        }

                        public void dispose() {
                            delegate.dispose();
                        }

                        public void inputChanged(final Viewer viewer, final Object oldInput,
                                final Object newInput) {
                            delegate.inputChanged(viewer, oldInput, newInput);
                        }
                    };
                    return provider;
                }
            };

            Set<AssetInfo> filteredServices = new HashSet<AssetInfo>();
            final Set<EnvironmentItem> currentServices = SetUtil.set(getServiceInfoList());
            if (currentServices.size() > 0) {
                for (Object obj : currentServices.iterator().next().getServiceData().values()) {
                    if (obj instanceof AssetInfo) {
                        filteredServices.add((AssetInfo) obj);
                    }
                }
            }

            try {
                if (project != null && TurmericServiceUtils.isSOAImplProject(project)) {
                    final ProjectInfo implProjectInfo = GlobalRepositorySystem.instanceOf()
                            .getActiveRepositorySystem().getAssetRegistry().getProjectInfo(project.getName());
                    filteredServices.add(implProjectInfo);
                }
            } catch (Exception e1) {
                SOALogger.getLogger().error(e1);
                UIUtil.showErrorDialog(e1);
                return;
            }

            dialog.setFilteredServices(filteredServices.toArray(new AssetInfo[0]));
            final List<Integer> statuses = new ArrayList<Integer>(1);
            final Runnable runnable = new Runnable() {
                public void run() {
                    statuses.add(dialog.open());
                }
            };
            BusyIndicator.showWhile(UIUtil.display(), runnable);
            if (statuses.isEmpty() || statuses.get(0) != Window.OK || dialog.getSelected().isEmpty())
                return;

            final Set<EnvironmentItem> services = SetUtil.set(getServiceInfoList());
            final Set<AssetInfo> addedServices = dialog.getSelected();
            if (services.isEmpty()) {
                services.add(new EnvironmentItem(SOAProjectConstants.DEFAULT_CLIENT_CONFIG_ENVIRONMENT));
            }
            for (EnvironmentItem item : services) {
                for (AssetInfo info : addedServices) {
                    item.addServiceData(info);
                }

            }

            serviceList.setInput(services);
            serviceAdded(addedServices);
        }
    };
    addServiceButton.addSelectionListener(selectionListener);

    removeServiceButton = new Button(buttonComposite, SWT.PUSH);
    removeServiceButton.setText("&Remove Service");
    removeServiceButton.setEnabled(false);
    final SelectionListener removeListener = new SelectionListener() {
        public void widgetDefaultSelected(final SelectionEvent e) {
            widgetSelected(e);
        }

        public void widgetSelected(final SelectionEvent e) {
            final List<EnvironmentItem> infos = getServiceInfoList();
            final Object selectedService = getSelectedObject();
            if (selectedService == null)
                return;
            for (EnvironmentItem item : infos) {
                if (selectedService instanceof AssetInfo) {
                    item.removeService(((AssetInfo) selectedService).getName());
                } else {
                    item.removeService(selectedService.toString());
                }
            }
            serviceList.setInput(infos);
            removeServiceButton.setEnabled(false);
            serviceRemoved(selectedService);
        }
    };
    removeServiceButton.addSelectionListener(removeListener);

    //calc proper width hint
    if (isZeroConfig() == false) {
        UIUtil.setEqualWidthHintForButtons(addEnvButton, removeEnvButton, addServiceButton,
                removeServiceButton);
    } else {
        UIUtil.setEqualWidthHintForButtons(addServiceButton, removeServiceButton);
    }
    return container;
}

From source file:org.eclipse.epf.library.edit.ui.UIHelper.java

License:Open Source License

public List selectTasks(List taskList, WorkProduct wp) {
    ILabelProvider labelProvider = new AdapterFactoryLabelProvider(
            TngAdapterFactory.INSTANCE.getNavigatorView_ComposedAdapterFactory()) {
        public String getColumnText(Object obj, int column) {
            if (obj instanceof MethodElement) {
                return TngUtil.getPresentationName(obj);
            }/*from w  ww  .ja v a2  s. c  om*/
            return super.getText(obj);
        }
    };

    IStructuredContentProvider contentProvider = new AdapterFactoryContentProvider(
            TngAdapterFactory.INSTANCE.getNavigatorView_ComposedAdapterFactory()) {
        public Object[] getElements(Object object) {
            return ((List) object).toArray();
        }
    };

    try {
        ProcessListSelectionDialog dlg = new ProcessListSelectionDialog(
                PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), taskList, contentProvider,
                labelProvider,
                NLS.bind(LibraryEditResources.ui_UserInteractionHelper_wplistdlg_msg, wp.getName()));

        dlg.setTitle(LibraryEditResources.ui_UserInteractionHelper_tasks);
        dlg.setBlockOnOpen(true);
        dlg.open();
        Object[] objs = dlg.getResult();

        List selectedTasks = new ArrayList();
        if ((objs != null) && (objs.length > 0)) {
            for (int i = 0; i < objs.length; i++) {
                selectedTasks.add(objs[i]);
            }
        }
        return selectedTasks;
    } finally {
        // dispose
        labelProvider.dispose();
        contentProvider.dispose();
    }
}

From source file:org.eclipse.epf.library.edit.ui.UIHelper.java

License:Open Source License

public List selectWorkProducts(List wpList, Role role) {
    ILabelProvider labelProvider = new AdapterFactoryLabelProvider(
            TngAdapterFactory.INSTANCE.getNavigatorView_ComposedAdapterFactory()) {
        public String getColumnText(Object obj, int column) {
            if (obj instanceof MethodElement) {
                return TngUtil.getPresentationName(obj);
            }/*from ww  w .ja  v a  2  s  .  com*/
            return super.getText(obj);
        }
    };

    IStructuredContentProvider contentProvider = new AdapterFactoryContentProvider(
            TngAdapterFactory.INSTANCE.getNavigatorView_ComposedAdapterFactory()) {
        public Object[] getElements(Object object) {
            return ((List) object).toArray();
        }
    };

    try {
        ProcessListSelectionDialog dlg = new ProcessListSelectionDialog(
                PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
                // MsgBox.getDefaultShell(),
                wpList, contentProvider, labelProvider,
                NLS.bind(LibraryEditResources.ui_UserInteractionHelper_rolelistdlg_msg, role.getName()));

        dlg.setTitle(LibraryEditResources.ui_UserInteractionHelper_workproducts);
        dlg.setBlockOnOpen(true);
        dlg.open();
        Object[] objs = dlg.getResult();

        List selectedWps = new ArrayList();
        if ((objs != null) && (objs.length > 0)) {
            for (int i = 0; i < objs.length; i++) {
                selectedWps.add(objs[i]);
            }
        }
        return selectedWps;
    } finally {
        // dispose
        labelProvider.dispose();
        contentProvider.dispose();
    }
}

From source file:org.xmind.ui.gallery.GalleryViewer.java

License:Open Source License

public void setContentProvider(IStructuredContentProvider contentProvider) {
    IStructuredContentProvider oldContentProvider = this.contentProvider;
    this.contentProvider = contentProvider;
    if (oldContentProvider != null) {
        Object currentInput = getInput();
        oldContentProvider.inputChanged(this, currentInput, null);
        oldContentProvider.dispose();
        contentProvider.inputChanged(this, null, currentInput);
        refresh();//from   w ww  .j a va 2s  . c  o m
    }
}

From source file:org.xmind.ui.gallery.NavigationViewer.java

License:Open Source License

public void setContentProvider(IStructuredContentProvider contentProvider) {
    if (contentProvider == null || contentProvider == this.contentProvider)
        return;/*from   w w  w .ja va  2s. c o  m*/
    IStructuredContentProvider oldContentProvider = this.contentProvider;
    this.contentProvider = contentProvider;
    if (oldContentProvider != null) {
        oldContentProvider.dispose();
    }
    contentProvider.inputChanged(this, getInput(), getInput());
    refresh();
}