/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.query.ui.builder.util; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; /** * ElementViewerFactory is a static class for building TreeViewer instances from a specified * ITreeContentProvider and ILabelProvider. * * @since 8.0 */ abstract public class ElementViewerFactory { private static ITreeContentProvider contentProvider; private static ILabelProvider labelProvider; private static ICriteriaStrategy criteriaStrategy; private static Object viewerInput; /** * Create a TreeViewer for displaying the desired Elements in the tree. * @param parent * @return */ public static TreeViewer createElementViewer(Composite parent) { TreeViewer viewer = new TreeViewer(parent, SWT.BORDER | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL); if ( contentProvider != null ) { viewer.setContentProvider(contentProvider); } if ( labelProvider != null ) { viewer.setLabelProvider(labelProvider); } viewer.setInput(viewerInput); return viewer; } public static void setViewerInput(Object input) { viewerInput = input; } /** * Set this static class's ITreeContentProvider for use in building TreeViewers. * @param provider */ public static void setContentProvider(ITreeContentProvider provider) { contentProvider = provider; } /** * Set this static class's ILabelProvider for displaying TreeViewers. * @param provider */ public static void setLabelProvider(ILabelProvider provider) { labelProvider = provider; } /** * Set this static class's ICriteriaStrategy. * @param strategy */ public static void setCriteriaStrategy(ICriteriaStrategy strategy) { criteriaStrategy = strategy; } /** * Get this static class's ITreeContentProvider. * @return */ public static ITreeContentProvider getContentProvider() { return contentProvider; } /** * Get this static class's ILabelProvider. * @return */ public static ILabelProvider getLabelProvider() { return labelProvider; } public static ICriteriaStrategy getCriteriaStrategy() { return criteriaStrategy; } /** * Get this static class's ICriteriaStrategy. * @param theElementViewer * @return */ public static ICriteriaStrategy getCriteriaStrategy(TreeViewer theElementViewer) { if ( criteriaStrategy == null ) { criteriaStrategy = new CriteriaStrategy(theElementViewer); } return criteriaStrategy; } }