List of usage examples for org.eclipse.jface.viewers IStructuredContentProvider dispose
default public void dispose()
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(); }