Example usage for org.eclipse.jface.viewers TreeViewer setContentProvider

List of usage examples for org.eclipse.jface.viewers TreeViewer setContentProvider

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TreeViewer setContentProvider.

Prototype

@Override
public void setContentProvider(IContentProvider provider) 

Source Link

Document

Sets the content provider used by this TreeViewer.

Usage

From source file:eu.geclipse.traceview.statistics.StatisticsVisualisation.java

License:Open Source License

/**
 * @param parent/*from   ww  w .  j  av  a2  s.  c  om*/
 * @param style
 * @param viewSite
 * @param trace
 */
public StatisticsVisualisation(final Composite parent, final int style, final IViewSite viewSite,
        final ITrace trace) {
    super(parent, style);
    this.trace = trace;
    // this
    GridLayout layout = new GridLayout();
    GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    layout.numColumns = 4;
    this.setLayout(layout);
    this.setLayoutData(layoutData);
    // selection
    layout = new GridLayout();
    layoutData = new GridData(SWT.FILL, SWT.FILL, false, true);
    layoutData.horizontalSpan = 1;
    Group selectionGroup = new Group(this, SWT.NONE);
    selectionGroup.setText(Messages.getString("StatisticsVisualisation.Statistics")); //$NON-NLS-1$
    selectionGroup.setLayout(layout);
    selectionGroup.setLayoutData(layoutData);
    // treeviewer
    final TreeViewer treeViewer = new TreeViewer(selectionGroup);
    layout = new GridLayout();
    layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    treeViewer.getTree().setLayout(layout);
    treeViewer.getTree().setLayoutData(layoutData);
    treeViewer.setContentProvider(new TreeNodeContentProvider());
    treeViewer.setLabelProvider(new StatisticsVisualisationLabelProvider());
    populateTree(treeViewer);
    // chart
    Group chartGroup = new Group(this, SWT.NONE);
    layout = new GridLayout();
    layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    chartGroup.setLayout(layout);
    chartGroup.setLayoutData(layoutData);
    chartGroup.setText(Messages.getString("StatisticsVisualisation.Chart")); //$NON-NLS-1$
    layoutData.horizontalSpan = 3;
    // description
    Group description = new Group(this, SWT.NONE);
    layout = new GridLayout();
    layoutData = new GridData(SWT.FILL, SWT.FILL, true, false);
    layoutData.heightHint = 60;
    layoutData.horizontalSpan = 4;
    description.setLayout(layout);
    description.setLayoutData(layoutData);
    description.setText(Messages.getString("StatisticsVisualisation.Description")); //$NON-NLS-1$
    final Text text = new Text(description, SWT.MULTI | SWT.V_SCROLL | SWT.WRAP);
    text.setEditable(false);
    text.setBackground(getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
    layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    text.setLayoutData(layoutData);
    text.setText(Messages.getString("StatisticsVisualisation.Select")); //$NON-NLS-1$
    // Scrolled Composite
    new Label(chartGroup, SWT.NONE);
    final ScrolledComposite sc = new ScrolledComposite(chartGroup, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    sc.setBackground(getDisplay().getSystemColor(SWT.COLOR_WHITE));
    layout = new GridLayout();
    layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    layoutData.verticalIndent = -18; // TODO cleaner solution or test if its ok
    // on other platforms
    sc.setLayout(layout);
    sc.setLayoutData(layoutData);
    // Composite
    this.composite = new Composite(sc, SWT.NONE);
    this.composite.setBackground(getDisplay().getSystemColor(SWT.COLOR_WHITE));
    layout = new GridLayout();
    layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    this.composite.setLayout(layout);
    this.composite.setLayoutData(layoutData);
    // init birt renderer
    try {
        PluginSettings ps = PluginSettings.instance();
        this.render = ps.getDevice("dv.SWT"); //$NON-NLS-1$
    } catch (ChartException exception) {
        Activator.logException(exception);
    }
    sc.setContent(this.composite);
    sc.addListener(SWT.Resize, new Listener() {

        public void handleEvent(final Event e) {
            int maxX = Math.max(StatisticsVisualisation.this.x, sc.getClientArea().width);
            int maxY = Math.max(StatisticsVisualisation.this.y, sc.getClientArea().height);
            StatisticsVisualisation.this.composite.setSize(maxX, maxY);
        }
    });
    this.composite.addPaintListener(new PaintListener() {

        public void paintControl(final PaintEvent e) {
            if (StatisticsVisualisation.this.chart != null) {
                paint(e);
            }
        }
    });
    this.composite.addDisposeListener(new DisposeListener() {

        public void widgetDisposed(final DisposeEvent e) {
            disposeWidget(e);
        }
    });
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(final SelectionChangedEvent event) {
            if (treeViewer.getSelection() instanceof IStructuredSelection) {
                IStructuredSelection structuredSelection = (IStructuredSelection) treeViewer.getSelection();
                if (structuredSelection.getFirstElement() instanceof TreeNode) {
                    TreeNode treeNode = (TreeNode) structuredSelection.getFirstElement();
                    if (treeNode.getValue() instanceof IStatistics) {
                        IStatistics statistics = (IStatistics) treeNode.getValue();
                        text.setText(statistics.getDescription());
                    }
                }
            }
        }
    });
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(final SelectionChangedEvent event) {
            ISelection selection = treeViewer.getSelection();
            if (selection != null && selection instanceof IStructuredSelection) {
                IStructuredSelection structuredSelection = (IStructuredSelection) selection;
                TreeNode treeNode = (TreeNode) structuredSelection.getFirstElement();
                if (treeNode != null && treeNode.getValue() instanceof AbstractChartBuilder) {
                    AbstractChartBuilder abstractChartBuilder = (AbstractChartBuilder) treeNode.getValue();
                    IStatistics statistics = (IStatistics) treeNode.getParent().getValue();
                    text.setText(statistics.getDescription());
                    statistics.initialize();
                    abstractChartBuilder.setTitle(statistics.getTitle());
                    abstractChartBuilder.setXSeries(statistics.getXSeries());
                    abstractChartBuilder.setYSeries(statistics.getYSeries());
                    abstractChartBuilder.setZSeries(statistics.getZSeries());
                    abstractChartBuilder.build();
                    StatisticsVisualisation.this.setChart(abstractChartBuilder.getChart());
                    StatisticsVisualisation.this.x = abstractChartBuilder.minWidth();
                    StatisticsVisualisation.this.y = abstractChartBuilder.minHeight();
                    int maxX = Math.max(StatisticsVisualisation.this.x, sc.getClientArea().width);
                    int maxY = Math.max(StatisticsVisualisation.this.y, sc.getClientArea().height);
                    StatisticsVisualisation.this.composite.setSize(maxX, maxY);
                    StatisticsVisualisation.this.composite.redraw();
                }
            }
        }
    });
}

From source file:eu.hydrologis.jgrass.ui.utilities.CatalogJGrassMapsetsTreeViewer.java

License:Open Source License

/**
 * @param parent//  w w  w. j  a v a2 s .co m
 * @param style
 * @param selectionStyle the tree selection style (single or multiple)
 * @param mapType the types of map to be filtered out (ex.
 *        {@link FeatureLayerTreeViewer.SHAPELAYER})
 */
public CatalogJGrassMapsetsTreeViewer(Composite parent, int style, int selectionStyle) {
    super(parent, style);
    setLayout(new GridLayout(1, false));
    GridData gridData = new GridData();
    gridData.grabExcessHorizontalSpace = true;
    gridData.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
    gridData.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
    gridData.grabExcessVerticalSpace = true;
    setLayoutData(gridData);

    // Create the tree viewer to display the file tree
    PatternFilter patternFilter = new PatternFilter();
    final FilteredTree filter = new FilteredTree(this, selectionStyle, patternFilter);
    final TreeViewer tv = filter.getViewer();
    tv.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
    tv.setContentProvider(new ContentProvider());
    labelProvider = new LabelProvider();
    tv.setLabelProvider(labelProvider);
    tv.setInput("dummy"); // pass a non-null that will be ignored //$NON-NLS-1$
    tv.addSelectionChangedListener(this);
}

From source file:eu.hydrologis.jgrass.ui.utilities.FeatureCatalogTreeViewer.java

License:Open Source License

/**
 * @param parent/*from   w w  w  .jav  a 2  s .com*/
 * @param style
 * @param selectionStyle the tree selection style (single or multiple)
 */
public FeatureCatalogTreeViewer(Composite parent, int style, int selectionStyle) {
    super(parent, style);
    setLayout(new GridLayout(1, false));
    GridData gridData = new GridData();
    gridData.grabExcessHorizontalSpace = true;
    gridData.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
    gridData.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
    gridData.grabExcessVerticalSpace = true;
    setLayoutData(gridData);

    // Create the tree viewer to display the file tree
    PatternFilter patternFilter = new PatternFilter();
    final FilteredTree filter = new FilteredTree(this, selectionStyle, patternFilter);
    final TreeViewer tv = filter.getViewer();
    tv.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
    tv.setContentProvider(new ContentProvider());
    labelProvider = new LabelProvider();
    tv.setLabelProvider(labelProvider);
    tv.setInput("dummy"); // pass a non-null that will be ignored //$NON-NLS-1$
    tv.addSelectionChangedListener(this);
}

From source file:eu.hydrologis.jgrass.ui.utilities.FeatureLayerTreeViewer.java

License:Open Source License

/**
 * @param parent//from  w ww . ja  va 2 s  .com
 * @param style
 * @param selectionStyle the tree selection style (single or multiple)
 */
public FeatureLayerTreeViewer(Composite parent, int style, int selectionStyle) {
    super(parent, style);
    setLayout(new GridLayout(1, false));
    GridData gridData = new GridData();
    gridData.grabExcessHorizontalSpace = true;
    gridData.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
    gridData.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
    gridData.grabExcessVerticalSpace = true;
    setLayoutData(gridData);

    // Create the tree viewer to display the file tree
    PatternFilter patternFilter = new PatternFilter();
    final FilteredTree filter = new FilteredTree(this, selectionStyle, patternFilter);
    final TreeViewer tv = filter.getViewer();
    tv.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
    tv.setContentProvider(new ContentProvider());
    labelProvider = new LabelProvider();
    tv.setLabelProvider(labelProvider);
    tv.setInput("dummy"); // pass a non-null that will be ignored //$NON-NLS-1$
    tv.addSelectionChangedListener(this);
}

From source file:eu.hydrologis.jgrass.ui.utilities.JGRasterCatalogTreeViewer.java

License:Open Source License

/**
 * @param parent//  w ww  .j av a  2s . co m
 * @param style
 * @param selectionStyle the tree selection style (single or multiple)
 * @param mapset mapset path on which to limit the view
 */
public JGRasterCatalogTreeViewer(Composite parent, int style, int selectionStyle, String mapset) {
    super(parent, style);
    if (mapset != null)
        this.mapset = mapset;
    setLayout(new GridLayout(1, false));
    GridData gridData = new GridData();
    gridData.grabExcessHorizontalSpace = true;
    gridData.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
    gridData.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
    gridData.grabExcessVerticalSpace = true;
    setLayoutData(gridData);

    // Create the tree viewer to display the file tree
    PatternFilter patternFilter = new PatternFilter();
    final FilteredTree filter = new FilteredTree(this, selectionStyle, patternFilter);
    final TreeViewer tv = filter.getViewer();
    tv.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
    tv.setContentProvider(new ContentProvider());
    labelProvider = new LabelProvider();
    tv.setLabelProvider(labelProvider);
    tv.setInput("dummy2"); // pass a non-null that will be ignored //$NON-NLS-1$
    tv.addSelectionChangedListener(this);
}

From source file:eu.hydrologis.jgrass.ui.utilities.JGRasterLayerTreeViewer.java

License:Open Source License

/**
 * @param parent/* w w w .j a  v a 2  s . c o m*/
 * @param style
 * @param selectionStyle the tree selection style (single or multiple)
 * @param mapsetPath mapset path on which to limit the view (can be null to visualize
 *        everything)
 */
public JGRasterLayerTreeViewer(Composite parent, int style, int selectionStyle, String mapsetPath) {
    super(parent, style);
    if (mapsetPath != null)
        this.mapsetPath = mapsetPath;
    setLayout(new GridLayout(1, false));
    GridData gridData = new GridData();
    gridData.grabExcessHorizontalSpace = true;
    gridData.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
    gridData.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
    gridData.grabExcessVerticalSpace = true;
    setLayoutData(gridData);

    // Create the tree viewer to display the file tree
    PatternFilter patternFilter = new PatternFilter();
    final FilteredTree filter = new FilteredTree(this, selectionStyle, patternFilter);
    final TreeViewer tv = filter.getViewer();
    tv.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
    tv.setContentProvider(new ContentProvider());
    labelProvider = new LabelProvider();
    tv.setLabelProvider(labelProvider);
    tv.setInput("dummy"); // pass a non-null that will be ignored //$NON-NLS-1$
    tv.addSelectionChangedListener(this);
}

From source file:eu.hydrologis.stage.geopaparazzi.geopapbrowser.StageGeopaparazziView.java

License:Open Source License

private TreeViewer createTreeViewer(Composite modulesComposite) {

    // FIXME/*from www  . java  2 s.co m*/
    // PatternFilter patternFilter = new PatternFilter();
    // final FilteredTree filter = new FilteredTree(modulesComposite,
    // SWT.SINGLE | SWT.BORDER, patternFilter, true);
    // final TreeViewer modulesViewer = filter.getViewer();
    final TreeViewer modulesViewer = new TreeViewer(modulesComposite);

    Control control = modulesViewer.getControl();
    GridData controlGD = new GridData(SWT.FILL, SWT.FILL, true, true);
    controlGD.horizontalSpan = 2;
    control.setLayoutData(controlGD);
    modulesViewer.setContentProvider(new ITreeContentProvider() {
        private static final long serialVersionUID = 1L;

        public Object[] getElements(Object inputElement) {
            return getChildren(inputElement);
        }

        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof List<?>) {
                List<?> list = (List<?>) parentElement;
                Object[] array = list.toArray();
                return array;
            }
            if (parentElement instanceof ProjectInfo) {
                ProjectInfo info = (ProjectInfo) parentElement;
                int imgSize = info.images != null ? info.images.length : 0;
                int logSize = info.logs != null ? info.logs.size() : 0;
                Object[] childs = new Object[imgSize + logSize];
                for (int i = 0; i < logSize; i++) {
                    childs[i] = info.logs.get(i);
                }
                for (int i = logSize; i < imgSize + logSize; i++) {
                    childs[i] = info.images[i - logSize];
                }
                return childs;
            }
            return new Object[0];
        }

        public Object getParent(Object element) {
            return null;
        }

        public boolean hasChildren(Object element) {
            return getChildren(element).length > 0;
        }

        public void dispose() {
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }

    });

    modulesViewer.setLabelProvider(new LabelProvider() {
        private static final long serialVersionUID = 1L;

        public Image getImage(Object element) {
            if (element instanceof ProjectInfo) {
                return ImageCache.getInstance().getImage(display, ImageCache.DATABASE);
            } else if (element instanceof org.jgrasstools.gears.io.geopaparazzi.geopap4.Image) {
                return ImageCache.getInstance().getImage(display, ImageCache.DBIMAGE);
            } else if (element instanceof GpsLog) {
                return ImageCache.getInstance().getImage(display, ImageCache.LOG);
            }
            return null;
        }

        public String getText(Object element) {
            if (element instanceof ProjectInfo) {
                ProjectInfo projectInfo = (ProjectInfo) element;
                String fileName = projectInfo.fileName;
                fileName = fileName.replace('_', ' ').replaceFirst("\\.gpap", "");
                String name = "<big>" + fileName + "</big><br/>";
                return name;
            } else if (element instanceof org.jgrasstools.gears.io.geopaparazzi.geopap4.Image) {
                org.jgrasstools.gears.io.geopaparazzi.geopap4.Image image = (org.jgrasstools.gears.io.geopaparazzi.geopap4.Image) element;
                String imageName = image.getName();
                return imageName;
            } else if (element instanceof GpsLog) {
                GpsLog log = (GpsLog) element;
                String logName = log.text;
                return logName;
            }
            return ""; //$NON-NLS-1$
        }
    });

    modulesViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            if (!(event.getSelection() instanceof IStructuredSelection)) {
                return;
            }
            IStructuredSelection sel = (IStructuredSelection) event.getSelection();

            Object selectedItem = sel.getFirstElement();
            if (selectedItem == null) {
                // unselected, show empty panel
                setNoProjectLabel();
                return;
            }

            if (selectedItem instanceof ProjectInfo) {
                selectProjectInfo(selectedItem);
            } else if (selectedItem instanceof org.jgrasstools.gears.io.geopaparazzi.geopap4.Image) {
                selectImage(selectedItem);
            } else if (selectedItem instanceof GpsLog) {
                selectGpsLog(selectedItem);
            } else {
                setNoProjectLabel();
            }
        }

    });

    MenuManager manager = new MenuManager();
    modulesViewer.getControl().setMenu(manager.createContextMenu(modulesViewer.getControl()));
    manager.addMenuListener(new IMenuListener() {
        private static final long serialVersionUID = 1L;

        @Override
        public void menuAboutToShow(IMenuManager manager) {
            if (modulesViewer.getSelection() instanceof IStructuredSelection) {
                IStructuredSelection selection = (IStructuredSelection) modulesViewer.getSelection();
                final Object selectedItem = selection.getFirstElement();
                if (selectedItem == null || selection.isEmpty()) {
                    return;
                }

                if (selectedItem instanceof ProjectInfo) {
                    manager.add(makeProjectDownloadAction(modulesViewer, selectedItem));
                    manager.add(makeMetadataEditAction(selectedItem));
                }
            }
        }

    });
    manager.setRemoveAllWhenShown(true);
    return modulesViewer;
}

From source file:eu.hydrologis.stage.modules.ui.StageModulesView.java

License:Open Source License

private TreeViewer createTreeViewer(Composite modulesComposite) {

    // FIXME/*www  . ja  va 2 s .c o  m*/
    // PatternFilter patternFilter = new PatternFilter();
    // final FilteredTree filter = new FilteredTree(modulesComposite,
    // SWT.SINGLE | SWT.BORDER, patternFilter, true);
    // final TreeViewer modulesViewer = filter.getViewer();
    final TreeViewer modulesViewer = new TreeViewer(modulesComposite);

    Control control = modulesViewer.getControl();
    GridData controlGD = new GridData(SWT.FILL, SWT.FILL, true, true);
    controlGD.horizontalSpan = 2;
    control.setLayoutData(controlGD);
    modulesViewer.setContentProvider(new ITreeContentProvider() {
        private static final long serialVersionUID = 1L;

        public Object[] getElements(Object inputElement) {
            return getChildren(inputElement);
        }

        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof List<?>) {
                List<?> list = (List<?>) parentElement;
                Object[] array = list.toArray();
                return array;
            }
            if (parentElement instanceof ViewerFolder) {
                ViewerFolder folder = (ViewerFolder) parentElement;
                List<ViewerFolder> subFolders = folder.getSubFolders();
                List<ViewerModule> modules = folder.getModules();
                List<Object> allObjs = new ArrayList<Object>();
                allObjs.addAll(subFolders);
                allObjs.addAll(modules);

                return allObjs.toArray();
            }
            return new Object[0];
        }

        public Object getParent(Object element) {
            if (element instanceof ViewerFolder) {
                ViewerFolder folder = (ViewerFolder) element;
                return folder.getParentFolder();
            }
            if (element instanceof ViewerModule) {
                ViewerModule module = (ViewerModule) element;
                return module.getParentFolder();
            }
            return null;
        }

        public boolean hasChildren(Object element) {
            return getChildren(element).length > 0;
        }

        public void dispose() {
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }

    });

    modulesViewer.setLabelProvider(new LabelProvider() {
        private static final long serialVersionUID = 1L;

        public Image getImage(Object element) {
            if (element instanceof ViewerFolder) {
                return ImageCache.getInstance().getImage(display, ImageCache.CATEGORY);
            }
            if (element instanceof ViewerModule) {
                ModuleDescription md = ((ViewerModule) element).getModuleDescription();
                Status status = md.getStatus();
                if (status == Status.experimental) {
                    return ImageCache.getInstance().getImage(display, ImageCache.MODULEEXP);
                } else {
                    return ImageCache.getInstance().getImage(display, ImageCache.MODULE);
                }
            }
            return null;
        }

        public String getText(Object element) {
            if (element instanceof ViewerFolder) {
                ViewerFolder categoryFolder = (ViewerFolder) element;
                String name = categoryFolder.getName();
                name = name.replaceFirst("/", "");
                return name;
            }
            if (element instanceof ViewerModule) {
                ModuleDescription module = ((ViewerModule) element).getModuleDescription();
                return module.getName().replaceAll("\\_\\_", ".");
            }
            return ""; //$NON-NLS-1$
        }
    });

    modulesViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            if (!(event.getSelection() instanceof IStructuredSelection)) {
                return;
            }
            IStructuredSelection sel = (IStructuredSelection) event.getSelection();

            Object selectedItem = sel.getFirstElement();
            if (selectedItem == null) {
                // unselected, show empty panel
                putUnselected();
                return;
            }

            if (selectedItem instanceof ViewerModule) {
                ModuleDescription currentSelectedModule = ((ViewerModule) selectedItem).getModuleDescription();
                currentSelectedModuleGui = new ModuleGui(currentSelectedModule);

                Control control = currentSelectedModuleGui.makeGui(modulesGuiComposite, false);

                // Label dummyLabel = new Label(modulesGuiComposite,
                // SWT.NONE);
                // dummyLabel.setLayoutData(new
                // GridData(SWT.BEGINNING, SWT.CENTER, false,
                // false));
                // dummyLabel.setText(currentSelectedModule.toString());

                modulesGuiStackLayout.topControl = control;
                modulesGuiComposite.layout(true);
            } else {
                currentSelectedModuleGui = null;
                putUnselected();
            }
        }

    });

    return modulesViewer;
}

From source file:eu.modelwriter.marker.ui.internal.preferences.MarkerTypePreferencePage.java

License:Open Source License

@Override
protected Control createContents(final Composite parent) {
    final Composite container = new Composite(parent, SWT.NULL);

    final TreeViewer treeViewer = new TreeViewer(container, SWT.BORDER);
    final Tree tree = treeViewer.getTree();
    tree.setBounds(10, 32, 232, 280);//from w ww. j  a  v  a  2  s .com

    final MarkerTreeViewContentProvider treeViewerContentProvider = new MarkerTreeViewContentProvider();

    treeViewer.setLabelProvider(new MarkerTreeViewLabelProvider());
    treeViewer.setContentProvider(treeViewerContentProvider);

    final TableViewer tableViewer = new TableViewer(container, SWT.BORDER | SWT.FULL_SELECTION);
    this.table = tableViewer.getTable();
    this.table.setBounds(254, 32, 365, 280);

    tableViewer.setContentProvider(ArrayContentProvider.getInstance());
    new RefColumn().addColumnTo(tableViewer);

    final Button btnParseAlloy = new Button(container, SWT.NONE);
    btnParseAlloy.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent e) {

            final MessageDialog warningdialog = new MessageDialog(MarkerActivator.getShell(),
                    "Mark Information", null,
                    "If new alloy file will be parsed , your all marker type will be lost !",
                    MessageDialog.WARNING, new String[] { "OK", "Cancel" }, 0);
            if (warningdialog.open() == 1) {
                return;
            }

            final FileDialog dialog = new FileDialog(
                    PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.OPEN);
            dialog.setFilterExtensions(new String[] { "*.mw", "*.als" });
            final String result = dialog.open();
            if (result == null) {
                return;
            }

            for (final IResource iResource : ResourcesPlugin.getWorkspace().getRoot().getProjects()) {
                boolean isClosed = false;
                try {
                    if (!((IProject) iResource).isOpen()) {
                        isClosed = true;
                        ((IProject) iResource).open(new NullProgressMonitor());
                    }
                    for (final IMarker iMarker : MarkerFactory.findMarkersAsArrayList(iResource)) {
                        if (MarkUtilities.getType(iMarker) != null) {
                            MarkUtilities.setType(iMarker, null);
                        }
                    }
                    if (isClosed == true) {
                        ((IProject) iResource).close(new NullProgressMonitor());
                    }
                } catch (final CoreException e1) {
                    e1.printStackTrace();
                }
            }

            MarkerPage.settings.put("alloyFile", result);

            final AlloyParser parser = new AlloyParser(result);
            final ArrayList<MarkerTypeElement> roots = parser.getTypes();
            final ArrayList<String> rels = parser.getRels();

            final MarkerTypeElement systemRoot = new MarkerTypeElement("universe");
            for (final MarkerTypeElement root : roots) {
                systemRoot.getChildren().add(root);
            }

            try {
                MarkerPage.settings.put("universe", Serialization.getInstance().toString(systemRoot));
                final Object[] array = new Object[1];
                array[0] = systemRoot;
                treeViewer.setInput(array);
                treeViewer.expandAll();
                MarkerPage.settings.put("rels", Serialization.getInstance().toString(rels));
                tableViewer.setInput(rels);
                // auto size columns
                final TableColumn[] columns = tableViewer.getTable().getColumns();
                for (int i = 0; i < columns.length; i++) {
                    columns[i].pack();
                }
                MarkerTypePreferencePage.this.lblNewLabel.setText(result);
                MarkerTypePreferencePage.this.lblNewLabel.setToolTipText(result);
            } catch (final IOException e1) {
                e1.printStackTrace();
            }
        }
    });
    btnParseAlloy.setBounds(10, 320, 75, 25);
    btnParseAlloy.setText("Specification");

    final Label lblMarkerTypes = new Label(container, SWT.NONE);
    lblMarkerTypes.setBounds(10, 10, 75, 15);
    lblMarkerTypes.setText("Sets");

    final Label lblRelations = new Label(container, SWT.NONE);
    lblRelations.setBounds(254, 10, 55, 15);
    lblRelations.setText("Relations");

    this.lblNewLabel = new Label(container, SWT.WRAP);
    this.lblNewLabel.setBounds(91, 325, 498, 72);
    if (MarkerPage.settings.get("alloyFile") != null) {
        this.lblNewLabel.setText(MarkerPage.settings.get("alloyFile"));
    }
    this.lblNewLabel.setToolTipText(MarkerPage.settings.get("alloyFile"));

    try {
        final String savedTree = MarkerPage.settings.get("universe");
        if (savedTree != null) {
            final Object[] array = new Object[1];
            array[0] = Serialization.getInstance().fromString(savedTree);
            treeViewer.setInput(array);
            treeViewer.expandAll();
        }

        final String rels = MarkerPage.settings.get("rels");
        if (rels != null) {
            tableViewer.setInput(Serialization.getInstance().fromString(rels));
            // auto size columns
            final TableColumn[] columns = tableViewer.getTable().getColumns();
            for (int i = 0; i < columns.length; i++) {
                columns[i].pack();
            }
        }
    } catch (final IOException e1) {
        e1.printStackTrace();
    } catch (final ClassNotFoundException e) {
        e.printStackTrace();
    }

    return container;
}

From source file:eu.udig.jconsole.JavaContentOutlinePage.java

License:Open Source License

public void createControl(Composite parent) {

    super.createControl(parent);

    TreeViewer viewer = getTreeViewer();
    viewer.setContentProvider(new ContentProvider());
    viewer.setLabelProvider(new LabelProvider());
    viewer.addSelectionChangedListener(this);

    if (fInput != null)
        viewer.setInput(fInput);// w  w  w  .  j  a  v  a  2 s.  c o m
}