Example usage for org.eclipse.jface.databinding.viewers TreeStructureAdvisor TreeStructureAdvisor

List of usage examples for org.eclipse.jface.databinding.viewers TreeStructureAdvisor TreeStructureAdvisor

Introduction

In this page you can find the example usage for org.eclipse.jface.databinding.viewers TreeStructureAdvisor TreeStructureAdvisor.

Prototype

TreeStructureAdvisor

Source Link

Usage

From source file:com.baremetalstudios.mapleide.internal.ResourceNavigator.java

License:Open Source License

@Inject
public ResourceNavigator(Composite parent, final IEclipseContext context, IWorkspace workspace) {
    final Realm realm = SWTObservables.getRealm(parent.getDisplay());
    this.context = context;
    parent.setLayout(new FillLayout());
    TreeViewer viewer = new TreeViewer(parent, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            StructuredSelection selection = (StructuredSelection) event.getSelection();
            selectionService/*  www. j  a  v  a 2  s. co m*/
                    .setSelection(selection.size() == 1 ? selection.getFirstElement() : selection.toArray());
            //            context.modify(IServiceConstants.ACTIVE_SELECTION, selection.size() == 1 ? selection.getFirstElement() : selection.toArray());
        }
    });

    IObservableFactory setFactory = new IObservableFactory() {
        public IObservable createObservable(Object element) {
            if (element instanceof IContainer && ((IContainer) element).exists()) {
                IObservableSet observableSet = observableSets.get(element);
                if (observableSet == null) {
                    observableSet = new WritableSet(realm);
                    try {
                        observableSet.addAll(Arrays.asList(((IContainer) element).members()));
                    } catch (CoreException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    observableSets.put((IContainer) element, observableSet);
                }
                return observableSet;
            }
            return Observables.emptyObservableSet();
        }
    };
    viewer.setContentProvider(new ObservableSetTreeContentProvider(setFactory, new TreeStructureAdvisor() {
        public Boolean hasChildren(Object element) {
            return Boolean.valueOf(element instanceof IContainer);
        }
    }));

    viewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            if (element instanceof IResource)
                return ((IResource) element).getName();
            return element == null ? "" : element.toString();
        }
    });
    viewer.setSorter(new ViewerSorter());
    viewer.setInput(workspace.getRoot());
    viewer.addOpenListener(new IOpenListener() {

        public void open(OpenEvent event) {

            MapleIDEApplication app = (MapleIDEApplication) application;
            IStructuredSelection s = (IStructuredSelection) event.getSelection();
            for (Object o : s.toArray()) {
                if (o instanceof IFile) {
                    IFile f = (IFile) o;
                    context.set(IFile.class, f);
                    String fExt = f.getFileExtension();
                    EDITOR: for (EditorPartDescriptor desc : app.getEditorPartDescriptors()) {
                        for (String ext : desc.getFileextensions()) {
                            if (ext.equals(fExt)) {
                                context.set(EditorPartDescriptor.class, desc);
                                System.err.println("Opening with: " + desc);

                                Command cmd = commandService
                                        .getCommand("com.baremetalstudios.mapleide.command.openeditor");
                                //                           Command cmd = commandService.getCommand("simpleide.command.openeditor");
                                ParameterizedCommand pCmd = ParameterizedCommand.generateCommand(cmd, null);
                                handlerService.executeHandler(pCmd);

                                break EDITOR;
                            }
                        }
                    }
                }
            }

        }
    });
    setupContextMenu(viewer, parent.getShell());
    workspace.addResourceChangeListener(listener);
}

From source file:com.netxforge.netxstudio.screens.f4.MappingStatistics.java

License:Open Source License

public EMFDataBindingContext initDataBindings_() {

    EMFDataBindingContext bindingContext = new EMFDataBindingContext();

    ObservableListTreeContentProvider treeContentProvider = new ObservableListTreeContentProvider(
            new IObservableFactory() {

                private IEMFListProperty subStatisticsObservableProperty = EMFEditProperties.list(
                        editingService.getEditingDomain(),
                        MetricsPackage.Literals.MAPPING_STATISTIC__SUB_STATISTICS);

                public IObservable createObservable(Object target) {
                    IObservable ol = null;

                    if (target instanceof IObservableList) {
                        ol = (IObservable) target;
                    } else if (target instanceof MappingStatistic) {
                        ol = subStatisticsObservableProperty.observe(target);
                    }//from   w w  w. j a va 2 s .co  m
                    return ol;
                }

            }, new TreeStructureAdvisor() {
                @Override
                public Object getParent(Object element) {

                    if (element instanceof EObject) {
                        EObject eo = (EObject) element;
                        if (eo.eContainer() != null) {
                            return eo.eContainer();
                        }
                    }
                    return null;
                }

                @Override
                public Boolean hasChildren(Object element) {

                    if (element instanceof MappingStatistic) {
                        return ((MappingStatistic) element).getSubStatistics().size() > 0 ? Boolean.TRUE : null;

                    }
                    return super.hasChildren(element);
                }
            });

    statisticsTreeViewer.setContentProvider(treeContentProvider);

    IObservableMap[] observeMaps = EMFObservables.observeMaps(treeContentProvider.getKnownElements(),
            new EStructuralFeature[] { MetricsPackage.Literals.MAPPING_STATISTIC__MESSAGE });
    statisticsTreeViewer.setLabelProvider(new StatisticObservableMapLabelProvider(observeMaps));

    // Cool, observer the whole resource.
    IEMFListProperty l = EMFProperties.list(MetricsPackage.Literals.METRIC_SOURCE__STATISTICS);

    IObservableList metricSourceObservableList = l.observe(metricSource);

    statisticsTreeViewer.setInput(metricSourceObservableList);

    /**
     * Set a comparator to sort our columns, only sort the objects of type
     * 
     */
    statisticsTreeViewer.setComparator(new ViewerComparator() {

        /*
         * (non-Javadoc)
         * 
         * @see
         * org.eclipse.jface.viewers.ViewerComparator#category(java.lang
         * .Object)
         */
        @Override
        public int category(Object element) {

            // Set categories for our objects, only interrested in Service
            // flows for now.
            if (element instanceof MappingStatistic)
                return 1;
            return super.category(element);
        }

        /*
         * (non-Javadoc)
         * 
         * @see
         * org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse
         * .jface.viewers.Viewer, java.lang.Object, java.lang.Object)
         */
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            int cat1 = category(e1);
            int cat2 = category(e2);

            if (cat1 != cat2) {
                return cat1 - cat2;
            }

            if (e1 instanceof MappingStatistic && e2 instanceof MappingStatistic) {
                MappingStatistic ms1 = (MappingStatistic) e1;
                MappingStatistic ms2 = (MappingStatistic) e2;

                if (ms1.eIsSet(MetricsPackage.Literals.MAPPING_STATISTIC__MAPPING_DURATION)
                        && ms2.eIsSet(MetricsPackage.Literals.MAPPING_STATISTIC__MAPPING_DURATION)) {
                    return ms2.getMappingDuration().getBegin().compare(ms1.getMappingDuration().getBegin());
                }
            }
            return 0; // Do not compare other types.
            // return super.compare(viewer, e1, e2);
        }

    });

    final IObservableValue selectionObservable = ViewerProperties.singleSelection()
            .observe(statisticsTreeViewer);

    // Observables for a single selection.

    IObservableValue messageObservable = SWTObservables.observeText(this.txtMessage, SWT.None);
    IObservableValue totalRecordsObservable = SWTObservables.observeText(this.txtTotalRecords, SWT.None);

    IObservableValue startTimeObservable = SWTObservables.observeText(this.txtStartDateTime, SWT.None);
    IObservableValue endTimeObservable = SWTObservables.observeText(this.txtEndDateTime, SWT.None);

    IObservableValue metricStartTimeObservable = SWTObservables.observeText(this.txtMetricStartDateTime,
            SWT.None);
    IObservableValue metricEndTimeObservable = SWTObservables.observeText(this.txtMetricEndDateTime, SWT.None);

    IObservableValue totalExpectedValuesObservable = SWTObservables.observeText(this.txtTotalValues, SWT.None);
    IObservableValue totalFailedValuesObservable = SWTObservables.observeText(this.txtTotalFailedValues,
            SWT.None);

    IEMFValueProperty messageProperty = EMFProperties.value(MetricsPackage.Literals.MAPPING_STATISTIC__MESSAGE);

    final IEMFValueProperty totalRecordsProperty = EMFProperties
            .value(MetricsPackage.Literals.MAPPING_STATISTIC__TOTAL_RECORDS);

    IEMFValueProperty startDateTimeProperty = EMFProperties
            .value(FeaturePath.fromList(MetricsPackage.Literals.MAPPING_STATISTIC__MAPPING_DURATION,
                    GenericsPackage.Literals.DATE_TIME_RANGE__BEGIN));

    IEMFValueProperty endDateTimeProperty = EMFProperties
            .value(FeaturePath.fromList(MetricsPackage.Literals.MAPPING_STATISTIC__MAPPING_DURATION,
                    GenericsPackage.Literals.DATE_TIME_RANGE__END));

    IEMFValueProperty metricStartDateTimeProperty = EMFProperties
            .value(FeaturePath.fromList(MetricsPackage.Literals.MAPPING_STATISTIC__PERIOD_ESTIMATE,
                    GenericsPackage.Literals.DATE_TIME_RANGE__BEGIN));

    IEMFValueProperty metricEndDateTimeProperty = EMFProperties
            .value(FeaturePath.fromList(MetricsPackage.Literals.MAPPING_STATISTIC__PERIOD_ESTIMATE,
                    GenericsPackage.Literals.DATE_TIME_RANGE__END));

    ComputedValue computedTotalExpectedValue = new ComputedValue() {

        @Override
        protected Object calculate() {
            Object value = totalRecordsProperty.observeDetail(selectionObservable).getValue();
            if (value instanceof Integer) {

                return new Integer(StudioUtils.metricsInMetricSource(metricSource).size() * (Integer) value)
                        .toString();
            }
            return 0;
        }

    };

    ComputedValue computedTotalFailedValue = new ComputedValue() {

        @Override
        protected Object calculate() {
            Object selectedObject = selectionObservable.getValue();
            // recursively compute for sub-statistics.
            if (selectedObject instanceof MappingStatistic) {
                return new Integer(StudioUtils.mappingFailedCount((MappingStatistic) selectedObject))
                        .toString();
            }
            return 0;
        }
    };

    EMFUpdateValueStrategy modelToTargetStrategy = new EMFUpdateValueStrategy();
    modelToTargetStrategy.setConverter(new ModelDateConverter());

    bindingContext.bindValue(messageObservable, messageProperty.observeDetail(selectionObservable));

    bindingContext.bindValue(totalRecordsObservable, totalRecordsProperty.observeDetail(selectionObservable));

    bindingContext.bindValue(startTimeObservable, startDateTimeProperty.observeDetail(selectionObservable),
            null, modelToTargetStrategy);

    bindingContext.bindValue(endTimeObservable, endDateTimeProperty.observeDetail(selectionObservable), null,
            modelToTargetStrategy);

    bindingContext.bindValue(metricStartTimeObservable,
            metricStartDateTimeProperty.observeDetail(selectionObservable), null, modelToTargetStrategy);

    bindingContext.bindValue(metricEndTimeObservable,
            metricEndDateTimeProperty.observeDetail(selectionObservable), null, modelToTargetStrategy);

    bindingContext.bindValue(totalExpectedValuesObservable, computedTotalExpectedValue);

    bindingContext.bindValue(totalFailedValuesObservable, computedTotalFailedValue);

    // bindingContext.bindValue(totalExpectedValuesObservable,
    // computedTotalExpectedValue, new UpdateValueStrategy(false,
    // UpdateValueStrategy.POLICY_NEVER), null);
    //
    // bindingContext.bindValue(totalFailedValuesObservable,
    // computedTotalFailedValue, new UpdateValueStrategy(false,
    // UpdateValueStrategy.POLICY_NEVER), null);

    ObservableListContentProvider recordsContentProvider = new ObservableListContentProvider();
    tblViewerRecords.setContentProvider(recordsContentProvider);

    // IObservableMap[] recordsObserveMaps = EMFObservables.observeMaps(
    // listContentProvider.getKnownElements(),
    // new EStructuralFeature[] {
    // MetricsPackage.Literals.MAPPING_RECORD__ROW,
    // MetricsPackage.Literals.MAPPING_RECORD__COLUMN,
    // MetricsPackage.Literals.MAPPING_RECORD__MESSAGE, });

    tblViewerRecords.setLabelProvider(new RecordsObservableMapLabelProvider());

    IEMFListProperty recordsProperty = EMFProperties
            .list(MetricsPackage.Literals.MAPPING_STATISTIC__FAILED_RECORDS);

    tblViewerRecords.setInput(recordsProperty.observeDetail(selectionObservable));

    return bindingContext;
}

From source file:org.adorsys.plh.pkix.workbench.navigator.internal.ResourceNavigator.java

License:Open Source License

@Inject
public ResourceNavigator(Composite parent, final IEclipseContext context, IWorkspace workspace) {
    final Realm realm = SWTObservables.getRealm(parent.getDisplay());
    this.context = context;
    parent.setLayout(new FillLayout());
    TreeViewer viewer = new TreeViewer(parent, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            StructuredSelection selection = (StructuredSelection) event.getSelection();
            selectionService/* ww w .jav a2 s .com*/
                    .setSelection(selection.size() == 1 ? selection.getFirstElement() : selection.toArray());
            //            context.modify(IServiceConstants.ACTIVE_SELECTION, selection.size() == 1 ? selection.getFirstElement() : selection.toArray());
        }
    });

    IObservableFactory setFactory = new IObservableFactory() {
        public IObservable createObservable(Object element) {
            if (element instanceof IContainer && ((IContainer) element).exists()) {
                IObservableSet observableSet = observableSets.get(element);
                if (observableSet == null) {
                    observableSet = new WritableSet(realm);
                    try {
                        observableSet.addAll(Arrays.asList(((IContainer) element).members()));
                    } catch (CoreException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    observableSets.put((IContainer) element, observableSet);
                }
                return observableSet;
            }
            return Observables.emptyObservableSet();
        }
    };
    viewer.setContentProvider(new ObservableSetTreeContentProvider(setFactory, new TreeStructureAdvisor() {
        public Boolean hasChildren(Object element) {
            return Boolean.valueOf(element instanceof IContainer);
        }
    }));

    viewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            if (element instanceof IResource)
                return ((IResource) element).getName();
            return element == null ? "" : element.toString();
        }
    });
    viewer.setSorter(new ViewerSorter());
    viewer.setInput(workspace.getRoot());
    viewer.addOpenListener(new IOpenListener() {

        public void open(OpenEvent event) {
            IStructuredSelection s = (IStructuredSelection) event.getSelection();
            for (Object o : s.toArray()) {
                if (o instanceof IFile) {
                    IFile f = (IFile) o;
                    context.set(IFile.class, f);
                    String fExt = f.getFileExtension();
                    EDITOR: for (MPartDescriptor desc : application.getDescriptors()) {
                        String category = desc.getCategory();
                        if (category == null)
                            continue;
                        String[] categories = category.split(",");
                        for (String ext : categories) {
                            if (ext.equalsIgnoreCase(fExt)) {
                                context.set(MPartDescriptor.class, desc);
                                System.err.println("Opening with: " + desc);
                                Command cmd = commandService.getCommand("desktop.command.openeditor");
                                ParameterizedCommand pCmd = ParameterizedCommand.generateCommand(cmd, null);
                                handlerService.executeHandler(pCmd);

                                break EDITOR;
                            }
                        }
                    }
                }
            }

        }
    });
    setupContextMenu(viewer, parent.getShell());
    workspace.addResourceChangeListener(listener);
}

From source file:org.bonitasoft.studio.diagram.custom.wizard.AbstractManageDiagramWizardPage.java

License:Open Source License

private TreeStructureAdvisor diagramTreeStructure() {
    return new TreeStructureAdvisor() {
    };
}

From source file:org.eclipse.e4.demo.e4photo.Library.java

License:Open Source License

@Inject
public Library(Composite parent, final IWorkspace workspace) {
    final Realm realm = SWTObservables.getRealm(parent.getDisplay());
    this.workspace = workspace;
    initializeWorkspace();/*from  w  w  w  . ja v a  2s.com*/
    viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.getTree().setData("org.eclipse.e4.ui.css.id", "library");

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            StructuredSelection selection = (StructuredSelection) event.getSelection();
            selectionService
                    .setSelection(selection.size() == 1 ? selection.getFirstElement() : selection.toArray());
        }
    });
    IObservableFactory setFactory = new IObservableFactory() {
        public IObservable createObservable(Object element) {
            if (element instanceof IContainer && ((IContainer) element).exists()) {
                IObservableSet observableSet = observableSets.get(element);
                if (observableSet == null) {
                    observableSet = new WritableSet(realm);
                    try {
                        observableSet.addAll(Arrays.asList(((IContainer) element).members()));
                    } catch (CoreException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    observableSets.put((IContainer) element, observableSet);
                }
                return observableSet;
            }
            return Observables.emptyObservableSet();
        }
    };
    viewer.setContentProvider(new ObservableSetTreeContentProvider(setFactory, new TreeStructureAdvisor() {
        public Boolean hasChildren(Object element) {
            return Boolean.valueOf(element instanceof IContainer);
        }
    }));

    viewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            if (element instanceof IResource)
                return ((IResource) element).getName();
            return element == null ? "" : element.toString();
        }
    });

    viewer.setSorter(new ViewerSorter());
    viewer.setInput(workspace.getRoot());

    //      Button button = new Button(parent, SWT.PUSH);
    //      button.setText("Create Project");
    //      button.addSelectionListener(new SelectionListener() {
    //         public void widgetSelected(SelectionEvent e) {
    //            String projectName = "Project" + (counter++);
    //            final IProject project = workspace.getRoot().getProject(
    //                  projectName);
    //            final IProjectDescription pd = workspace
    //                  .newProjectDescription(projectName);
    //            try {
    //               workspace.run(new IWorkspaceRunnable() {
    //                  public void run(IProgressMonitor monitor)
    //                        throws CoreException {
    //                     project.create(pd, monitor);
    //                     project.open(monitor);
    //                  }
    //               }, new NullProgressMonitor());
    //            } catch (CoreException e1) {
    //               // TODO Auto-generated catch block
    //               e1.printStackTrace();
    //            }
    //         }
    //
    //         public void widgetDefaultSelected(SelectionEvent e) {
    //         }
    //      });

    GridLayoutFactory.fillDefaults().generateLayout(parent);
}

From source file:org.eclipse.e4.demo.simpleide.navigator.internal.ResourceNavigator.java

License:Open Source License

@Inject
public ResourceNavigator(Composite parent, final IEclipseContext context, IWorkspace workspace) {
    final Realm realm = SWTObservables.getRealm(parent.getDisplay());
    this.context = context;
    parent.setLayout(new FillLayout());
    TreeViewer viewer = new TreeViewer(parent, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            StructuredSelection selection = (StructuredSelection) event.getSelection();
            selectionService//from  ww  w.  ja  v a2  s  . c o m
                    .setSelection(selection.size() == 1 ? selection.getFirstElement() : selection.toArray());
            //            context.modify(IServiceConstants.ACTIVE_SELECTION, selection.size() == 1 ? selection.getFirstElement() : selection.toArray());
        }
    });

    IObservableFactory setFactory = new IObservableFactory() {
        public IObservable createObservable(Object element) {
            if (element instanceof IContainer && ((IContainer) element).exists()) {
                IObservableSet observableSet = observableSets.get(element);
                if (observableSet == null) {
                    observableSet = new WritableSet(realm);
                    try {
                        observableSet.addAll(Arrays.asList(((IContainer) element).members()));
                    } catch (CoreException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    observableSets.put((IContainer) element, observableSet);
                }
                return observableSet;
            }
            return Observables.emptyObservableSet();
        }
    };
    viewer.setContentProvider(new ObservableSetTreeContentProvider(setFactory, new TreeStructureAdvisor() {
        public Boolean hasChildren(Object element) {
            return Boolean.valueOf(element instanceof IContainer);
        }
    }));

    viewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            if (element instanceof IResource)
                return ((IResource) element).getName();
            return element == null ? "" : element.toString();
        }
    });
    viewer.setSorter(new ViewerSorter());
    viewer.setInput(workspace.getRoot());
    viewer.addOpenListener(new IOpenListener() {

        public void open(OpenEvent event) {
            MSimpleIDEApplication app = (MSimpleIDEApplication) application;
            IStructuredSelection s = (IStructuredSelection) event.getSelection();
            for (Object o : s.toArray()) {
                if (o instanceof IFile) {
                    IFile f = (IFile) o;
                    context.set(IFile.class, f);
                    String fExt = f.getFileExtension();
                    EDITOR: for (MEditorPartDescriptor desc : app.getEditorPartDescriptors()) {
                        for (String ext : desc.getFileextensions()) {
                            if (ext.equals(fExt)) {
                                context.set(MEditorPartDescriptor.class, desc);
                                System.err.println("Opening with: " + desc);

                                Command cmd = commandService.getCommand("simpleide.command.openeditor");
                                ParameterizedCommand pCmd = ParameterizedCommand.generateCommand(cmd, null);
                                handlerService.executeHandler(pCmd);

                                break EDITOR;
                            }
                        }
                    }
                }
            }

        }
    });
    setupContextMenu(viewer, parent.getShell());
    workspace.addResourceChangeListener(listener);
}

From source file:org.eclipse.e4.tools.emf.ui.internal.common.ModelEditor.java

License:Open Source License

private TreeViewer createTreeViewerArea(Composite parent) {

    final Composite treeArea = new Composite(parent, SWT.BORDER);

    treeArea.setLayout(new FillLayout());
    treeArea.setData(CSS_CLASS_KEY, "formContainer"); //$NON-NLS-1$
    treeArea.setBackgroundMode(SWT.INHERIT_DEFAULT);

    TreeViewer tempViewer = null;/*from   ww  w. j  a  v a2 s.  c  o m*/
    String property = System.getProperty(ORG_ECLIPSE_E4_TOOLS_MODELEDITOR_FILTEREDTREE_ENABLED_XMITAB_DISABLED);
    if (property != null || preferences.getBoolean("tab-form-search-show", false)) { //$NON-NLS-1$
        FilteredTree viewParent = new FilteredTree(treeArea,
                SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL, new PatternFilter(), true);
        tempViewer = viewParent.getViewer();
    } else {
        tempViewer = new TreeViewerEx(treeArea, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL,
                emfDocumentProvider, modelProvider);
    }
    final TreeViewer viewer = tempViewer;

    viewer.setLabelProvider(new ComponentLabelProvider(this, messages));
    ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(
            new ObservableFactoryImpl(), new TreeStructureAdvisor() {
            });
    viewer.setContentProvider(contentProvider);

    final WritableSet clearedSet = new WritableSet();

    contentProvider.getKnownElements().addSetChangeListener(new ISetChangeListener() {

        @Override
        public void handleSetChange(SetChangeEvent event) {
            for (Object o : event.diff.getAdditions()) {
                if (o instanceof EObject) {
                    clearedSet.add(o);
                }
            }

            for (Object o : event.diff.getRemovals()) {
                if (o instanceof EObject) {
                    clearedSet.remove(o);
                }
            }
        }
    });

    for (FeaturePath p : labelFeaturePaths) {
        IObservableMap map = EMFProperties.value(p).observeDetail(clearedSet);
        map.addMapChangeListener(new IMapChangeListener() {

            @Override
            public void handleMapChange(MapChangeEvent event) {
                viewer.update(event.diff.getChangedKeys().toArray(), null);
            }
        });
    }

    viewer.setInput(modelProvider.getRoot());
    viewer.setAutoExpandLevel(2);
    viewer.expandToLevel(viewer.getAutoExpandLevel());
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            TreeViewer viewer = (TreeViewer) event.getViewer();
            IStructuredSelection thisSelection = (IStructuredSelection) event.getSelection();
            Object selectedNode = thisSelection.getFirstElement();
            if (mod1Down) {
                if (viewer.getExpandedState(selectedNode))
                    viewer.setExpandedState(selectedNode, false);
                else
                    viewer.expandToLevel(selectedNode, AbstractTreeViewer.ALL_LEVELS);
            } else {
                viewer.setExpandedState(selectedNode, !viewer.getExpandedState(selectedNode));
            }

        }
    });

    // Effect of filtered tree implementation (bug 391086)
    viewer.getTree().addTreeListener(new TreeAdapter() {
        @Override
        public void treeCollapsed(TreeEvent e) {
            viewer.expandToLevel(viewer.getAutoExpandLevel());
        }
    });

    int ops = DND.DROP_MOVE;
    viewer.addDragSupport(ops, new Transfer[] { MemoryTransfer.getInstance() }, new DragListener(viewer));
    viewer.addDropSupport(ops, new Transfer[] { MemoryTransfer.getInstance() },
            new DropListener(viewer, modelProvider.getEditingDomain()));

    return viewer;
}

From source file:org.eclipse.scada.core.ui.connection.information.InformationViewPart.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    this.list = new ConnectionInformationList();

    parent.setLayout(new FillLayout());

    this.viewer = new TreeViewer(parent, SWT.FULL_SELECTION);

    this.viewer.getTree().setHeaderVisible(true);

    final TableLayout layout = new TableLayout();
    this.viewer.getTree().setLayout(layout);

    final ObservableSetTreeContentProvider contentProvider = new ObservableSetTreeContentProvider(
            new IObservableFactory() {

                @Override//from  w w w  .  j ava  2s .  com
                public IObservable createObservable(final Object target) {
                    if (target instanceof IObservable) {
                        return (IObservable) target;
                    } else if (target instanceof ConnectionInformationProvider) {
                        return new ConnectionInformationWrapper((ConnectionInformationProvider) target);
                    }
                    return null;
                }
            }, new TreeStructureAdvisor() {
            });

    {
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        col.setLabelProvider(new LabelProvider(contentProvider.getRealizedElements()));
        layout.addColumnData(new ColumnWeightData(100));
    }
    {
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        col.setLabelProvider(new LabelProvider(contentProvider.getRealizedElements()));
        layout.addColumnData(new ColumnWeightData(50));
        col.getColumn().setText("Current");
    }
    {
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        col.setLabelProvider(new LabelProvider(contentProvider.getRealizedElements()));
        layout.addColumnData(new ColumnWeightData(50));
        col.getColumn().setText("Min");
    }
    {
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        col.setLabelProvider(new LabelProvider(contentProvider.getRealizedElements()));
        layout.addColumnData(new ColumnWeightData(50));
        col.getColumn().setText("Max");
    }

    this.viewer.setContentProvider(contentProvider);
    this.viewer.setInput(this.list.getList());
    this.viewer.setComparator(new InformationBeanComparator());

    getViewSite().setSelectionProvider(this.viewer);
    hookContextMenu(getViewSite());
}

From source file:org.eclipse.scada.da.ui.summary.explorer.SummaryExplorerViewPart.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    this.realm = SWTObservables.getRealm(parent.getDisplay());

    this.viewer = new TreeViewer(parent, SWT.FULL_SELECTION);
    final ObservableSetTreeContentProvider contentProvider = new ObservableSetTreeContentProvider(
            new FactoryImpl(), new TreeStructureAdvisor() {
            });//  ww  w  .  j a  va 2 s .com
    this.viewer.setContentProvider(contentProvider);
    this.viewer.getTree().setHeaderVisible(true);

    final TableLayout layout = new TableLayout();

    {
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        final ListeningStyledCellLabelProvider labelProvider = new NameLabelProviderImpl(
                contentProvider.getRealizedElements());
        col.setLabelProvider(labelProvider);
        col.getColumn().setText("Name");
        layout.addColumnData(new ColumnWeightData(100));
        this.labelProviders.add(labelProvider);
    }

    for (final State state : State.values()) {
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        final ListeningStyledCellLabelProvider labelProvider = new StateLabelProviderImpl(
                contentProvider.getRealizedElements(), state);
        col.setLabelProvider(labelProvider);
        col.getColumn().setText(state.name());
        layout.addColumnData(new ColumnWeightData(25));
        this.labelProviders.add(labelProvider);
    }

    this.viewer.getTree().setLayout(layout);
}

From source file:org.eclipsetrader.ui.internal.charts.views.HistoryDataDetailEditor.java

License:Open Source License

void createViewer(Composite parent) {
    Tree tree = new Tree(parent, SWT.FULL_SELECTION | SWT.MULTI);
    tree.setHeaderVisible(true);/*from w w w  .  j  a  v  a2  s  .c om*/
    tree.setLinesVisible(true);

    viewer = new TreeViewer(tree);

    IObservableFactory observableFactory = new IObservableFactory() {

        @Override
        public IObservable createObservable(Object target) {
            if (target instanceof HistoryDataDetailEditorModel) {
                return Observables
                        .unmodifiableObservableList(((HistoryDataDetailEditorModel) target).getList());
            }
            if (target instanceof HistoryDataEditorModel) {
                return Observables.unmodifiableObservableList(((HistoryDataEditorModel) target).getList());
            }
            return null;
        }
    };

    TreeStructureAdvisor treeStructureAdvisor = new TreeStructureAdvisor() {

        @Override
        public Boolean hasChildren(Object element) {
            if (element instanceof HistoryDataEditorModel) {
                return true;
            }
            return false;
        }
    };

    ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(observableFactory,
            treeStructureAdvisor);
    viewer.setContentProvider(contentProvider);

    GC gc = new GC(parent);
    FontMetrics fontMetrics = gc.getFontMetrics();
    gc.dispose();

    TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, SWT.NONE);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Time);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 70));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.timeValue(), BeanProperties.value(HistoryDataElement.PROP_DATE)));

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Open);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_OPEN)));

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_High);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_HIGH)));

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Low);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_LOW)));

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Close);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_CLOSE)));

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Volume);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 70));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.longValue(), BeanProperties.value(HistoryDataElement.PROP_VOLUME)));

    if (Platform.WS_GTK.equals(Platform.getWS())) {
        viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
        viewerColumn.getColumn().setWidth(1);
    }

    final String[] properties = new String[] { HistoryDataElement.PROP_DATE, HistoryDataElement.PROP_OPEN,
            HistoryDataElement.PROP_HIGH, HistoryDataElement.PROP_LOW, HistoryDataElement.PROP_CLOSE,
            HistoryDataElement.PROP_VOLUME, "" //$NON-NLS-1$
    };

    DataViewerLabelProvider labelProvider = new DataViewerLabelProvider(
            BeansObservables.observeMaps(contentProvider.getKnownElements(), properties));
    labelProvider.setDateFormat(Util.getTimeFormat());
    viewer.setLabelProvider(labelProvider);

    viewer.setSorter(new ViewerSorter() {

        @Override
        public int compare(Viewer viewer, Object o1, Object o2) {
            if ((o1 instanceof HistoryDataEditorModel) && (o2 instanceof HistoryDataEditorModel)) {
                TimeSpan ts1 = ((HistoryDataEditorModel) o1).getBarSize();
                TimeSpan ts2 = ((HistoryDataEditorModel) o2).getBarSize();
                if (ts1.higherThan(ts2)) {
                    return 1;
                }
                if (ts2.higherThan(ts1)) {
                    return -1;
                }
                return 0;
            } else if ((o1 instanceof HistoryDataElement) && (o2 instanceof HistoryDataElement)) {
                HistoryDataElement e1 = (HistoryDataElement) o1;
                HistoryDataElement e2 = (HistoryDataElement) o2;
                if (e1.getDate() != null && e2.getDate() != null) {
                    return e1.getDate().compareTo(e2.getDate());
                }
                if (e1.getDate() != null && e2.getDate() == null) {
                    return -1;
                }
                if (e1.getDate() == null && e2.getDate() != null) {
                    return 1;
                }
            }
            return 0;
        }
    });

    CellNavigationStrategy naviStrat = new CellNavigationStrategy() {

        @Override
        public ViewerCell findSelectedCell(ColumnViewer viewer, ViewerCell currentSelectedCell, Event event) {
            ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event);
            if (cell != null) {
                if (cell.getColumnIndex() == properties.length - 1) {
                    return null;
                }
                Tree tree = ((TreeViewer) viewer).getTree();
                tree.showColumn(tree.getColumn(cell.getColumnIndex()));
            }
            return cell;
        }
    };

    TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(viewer,
            new FocusCellOwnerDrawHighlighter(viewer), naviStrat);

    ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(viewer) {

        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;

        }
    };
    TreeViewerEditor.create(viewer, focusCellManager, activationStrategy,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    tree.addTraverseListener(new TraverseListener() {

        @Override
        public void keyTraversed(TraverseEvent e) {
            if (e.detail == SWT.TRAVERSE_RETURN || e.detail == SWT.TRAVERSE_ESCAPE) {
                e.doit = false;
            }
        }
    });
    tree.addKeyListener(new KeyAdapter() {

        @Override
        public void keyPressed(KeyEvent e) {
            if (viewer.isCellEditorActive()) {
                return;
            }
            if (e.keyCode == SWT.INSERT) {
                IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();

                HistoryDataEditorModel parent = null;

                int index = 0;
                if (!selection.isEmpty()) {
                    parent = model.getParent(selection.getFirstElement());
                    if (parent == null) {
                        return;
                    }
                    index = parent.getList().indexOf(selection.getFirstElement());
                    if (index == -1) {
                        index = parent.getList().size();
                    }
                }

                final HistoryDataElement element = new HistoryDataElement();
                parent.getList().add(index, element);

                e.doit = false;

                Display.getDefault().asyncExec(new Runnable() {

                    @Override
                    public void run() {
                        if (!viewer.getControl().isDisposed()) {
                            viewer.editElement(element, 0);
                        }
                    }
                });
            } else if (e.character == SWT.DEL) {
                IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
                for (Object element : selection.toList()) {
                    HistoryDataEditorModel parent = model.getParent(selection.getFirstElement());
                    if (parent != null) {
                        if (parent.getList().remove(element)) {
                            changeSupport.firePropertyChange(PROP_DIRTY, dirty, dirty = true);
                        }
                    }
                }
            }
        }
    });

    viewer.setInput(model);
}