Example usage for org.eclipse.jface.databinding.viewers ObservableListTreeContentProvider getKnownElements

List of usage examples for org.eclipse.jface.databinding.viewers ObservableListTreeContentProvider getKnownElements

Introduction

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

Prototype

public IObservableSet<E> getKnownElements() 

Source Link

Document

Returns the set of elements known to this content provider.

Usage

From source file:au.gov.ga.earthsci.application.parts.layer.LayerTreePart.java

License:Apache License

@PostConstruct
public void init(Composite parent, EMenuService menuService) {
    LayerOpacityToolControl.setPartContext(context);

    viewer = new CheckboxTreeViewer(parent, SWT.MULTI);
    viewer.getTree().setBackgroundImage(ImageRegistry.getInstance().get(ImageRegistry.ICON_TRANSPARENT));
    context.set(TreeViewer.class, viewer);

    clipboard = new Clipboard(shell.getDisplay());
    context.set(Clipboard.class, clipboard);

    IListProperty childrenProperty = new MultiListProperty(
            new IListProperty[] { BeanProperties.list("children") }); //$NON-NLS-1$

    ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(
            childrenProperty.listFactory(), null);
    viewer.setContentProvider(contentProvider);

    //TreeViewerEditor.create(viewer, new SecondClickColumnViewerEditorActivationStrategy(viewer), ColumnViewerEditor.DEFAULT);

    IObservableSet knownElements = contentProvider.getKnownElements();
    IObservableMap enabledMap = BeanProperties.value("enabled").observeDetail(knownElements); //$NON-NLS-1$
    IObservableMap opacityMap = BeanProperties.value("opacity").observeDetail(knownElements); //$NON-NLS-1$
    IObservableMap nameMap = BeanProperties.value("name").observeDetail(knownElements); //$NON-NLS-1$
    IObservableMap labelMap = BeanProperties.value("label").observeDetail(knownElements); //$NON-NLS-1$
    IObservableMap statusMap = BeanProperties.value("status").observeDetail(knownElements); //$NON-NLS-1$
    IObservableMap anyChildrenEnabledMap = BeanProperties.value("anyChildrenEnabled") //$NON-NLS-1$
            .observeDetail(knownElements);
    IObservableMap allChildrenEnabledMap = BeanProperties.value("allChildrenEnabled") //$NON-NLS-1$
            .observeDetail(knownElements);
    IObservableMap childrenMap = BeanProperties.value("children").observeDetail(knownElements); //$NON-NLS-1$
    IObservableMap expandedMap = BeanProperties.value("expanded").observeDetail(knownElements); //$NON-NLS-1$

    IObservableMap[] labelAttributeMaps = new IObservableMap[] { enabledMap, opacityMap, nameMap, labelMap,
            anyChildrenEnabledMap, allChildrenEnabledMap, statusMap };

    labelProvider = new LayerTreeLabelProvider(labelAttributeMaps);
    viewer.setLabelProvider(labelProvider);
    viewer.setCheckStateProvider(new LayerTreeCheckStateProvider());

    viewer.setInput(model.getRootNode());
    viewer.setExpandedElements(getExpandedNodes());

    IMapChangeListener childrenListener = new IMapChangeListener() {
        @Override/*from  w  ww  . java 2 s. c o  m*/
        public void handleMapChange(MapChangeEvent event) {
            //for any children added, expand the nodes
            Set<?> addedKeys = event.diff.getAddedKeys();
            for (Object o : addedKeys) {
                if (o instanceof ILayerTreeNode) {
                    ((ILayerTreeNode) o).getParent().getValue().setExpanded(true);
                }
            }
        }
    };
    IMapChangeListener expandedListener = new IMapChangeListener() {
        @Override
        public void handleMapChange(MapChangeEvent event) {
            //ensure the expanded elements are kept in sync with the model
            viewer.getTree().getDisplay().asyncExec(new Runnable() {
                @Override
                public void run() {
                    if (!viewer.getTree().isDisposed()) {
                        viewer.setExpandedElements(getExpandedNodes());
                    }
                }
            });
        }
    };
    childrenMap.addMapChangeListener(childrenListener);
    childrenMap.addMapChangeListener(expandedListener);
    expandedMap.addMapChangeListener(expandedListener);

    viewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            Object element = event.getElement();
            if (element instanceof ILayerTreeNode) {
                ILayerTreeNode node = (ILayerTreeNode) element;
                node.enableChildren(event.getChecked());
            }
        }
    });

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
            List<?> list = selection.toList();
            ILayerTreeNode[] array = list.toArray(new ILayerTreeNode[list.size()]);
            selectionService.setSelection(array.length == 1 ? array[0] : array);
        }
    });

    viewer.addTreeListener(new ITreeViewerListener() {
        @Override
        public void treeExpanded(TreeExpansionEvent event) {
            ILayerTreeNode layerNode = (ILayerTreeNode) event.getElement();
            layerNode.setExpanded(true);
        }

        @Override
        public void treeCollapsed(TreeExpansionEvent event) {
            ILayerTreeNode layerNode = (ILayerTreeNode) event.getElement();
            layerNode.setExpanded(false);
        }
    });

    viewer.getTree().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseDoubleClick(MouseEvent e) {
            ViewerCell cell = viewer.getCell(new Point(e.x, e.y));
            if (cell == null)
                return;

            ILayerTreeNode layer = (ILayerTreeNode) cell.getElement();
            selectLayer(layer);
        }

        @Override
        public void mouseDown(MouseEvent e) {
            ViewerCell cell = viewer.getCell(new Point(e.x, e.y));
            if (cell == null) {
                viewer.setSelection(StructuredSelection.EMPTY);
            }
        }
    });

    viewer.getTree().addTraverseListener(new TraverseListener() {
        @Override
        public void keyTraversed(TraverseEvent e) {
            if (e.detail == SWT.TRAVERSE_RETURN) {
                IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
                if (selection.size() == 1) {
                    ILayerTreeNode layer = (ILayerTreeNode) selection.getFirstElement();
                    selectLayer(layer);
                }
            }
        }
    });

    viewer.setCellEditors(new CellEditor[] { new TextCellEditor(viewer.getTree(), SWT.BORDER) });
    viewer.setColumnProperties(new String[] { "layer" }); //$NON-NLS-1$

    viewer.setCellModifier(new ICellModifier() {
        @Override
        public void modify(Object element, String property, Object value) {
            if (element instanceof Item) {
                element = ((Item) element).getData();
            }
            ((ILayerTreeNode) element).setLabel((String) value);
        }

        @Override
        public Object getValue(Object element, String property) {
            if (element instanceof Item) {
                element = ((Item) element).getData();
            }
            return ((ILayerTreeNode) element).getLabelOrName();
        }

        @Override
        public boolean canModify(Object element, String property) {
            return true;
        }
    });

    ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(viewer) {
        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };
    TreeViewerEditor.create(viewer, activationStrategy, ColumnViewerEditor.KEYBOARD_ACTIVATION);

    //add drag and drop support
    int ops = DND.DROP_COPY | DND.DROP_MOVE;
    viewer.addDragSupport(ops, new Transfer[] { LayerTransfer.getInstance() },
            new LayerTreeDragSourceListener(viewer));
    viewer.addDropSupport(ops, new Transfer[] { LayerTransfer.getInstance(), FileTransfer.getInstance() },
            new LayerTreeDropAdapter(viewer, model, context));

    //add context menu
    menuService.registerContextMenu(viewer.getTree(), "au.gov.ga.earthsci.application.layertree.popupmenu"); //$NON-NLS-1$
}

From source file:com.htmlhifive.tools.jslint.view.TargetStructureComposite.java

License:Apache License

/**
 * ??.//w w  w.  ja va  2s  .  com
 */
private void createContents() {
    setText(Messages.WT0003.getText());
    setLayout(new GridLayout(1, false));

    Composite composite = new Composite(this, SWT.NONE);
    composite.setLayout(new GridLayout(1, false));

    Link link = new Link(composite, SWT.NONE);
    link.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            doLinkWidgetSelected(e);
        }
    });
    link.setSize(84, 18);
    link.setText(Messages.DL0008.getText());

    Group group = new Group(this, SWT.NONE);
    GridData gdGroup = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
    gdGroup.heightHint = 150;
    group.setLayoutData(gdGroup);
    group.setText(Messages.WT0002.getText());
    group.setLayout(new GridLayout(1, false));

    treeViewerSource = new TreeViewer(group, SWT.BORDER);
    Tree treeSource = treeViewerSource.getTree();
    GridData gdTreeSource = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
    gdTreeSource.widthHint = 300;
    treeSource.setLayoutData(gdTreeSource);

    IListProperty childrenProperty = new MultiListProperty(
            new IListProperty[] { PojoProperties.list("children") });
    ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(
            childrenProperty.listFactory(), null);
    treeViewerSource.setContentProvider(contentProvider);

    ObservableMapLabelProvider labelProvider = new ObservableMapLabelProvider(
            PojoProperties.value("label").observeDetail(contentProvider.getKnownElements())) {
        @Override
        public Image getImage(Object element) {
            LibraryTreeModel model = (LibraryTreeModel) element;
            Object data = model.getData();
            if (data instanceof IncludePathEntryWrapper) {
                return JavaScriptUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_PACKFRAG_ROOT);
            }
            if (data instanceof IPath) {
                return JavaScriptUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_CUNIT);
            }
            if (StringUtils.equals(model.getLabel(), LABEL_INCLUDED)) {
                return JavaPluginImages.DESC_OBJS_INCLUSION_FILTER_ATTRIB.createImage();
            } else if (StringUtils.equals(model.getLabel(), LABEL_EXCLUDED)) {
                return JavaPluginImages.DESC_OBJS_EXCLUSION_FILTER_ATTRIB.createImage();
            }
            return null;
        }
    };
    treeViewerSource.setLabelProvider(labelProvider);
    treeViewerSource.setInput(createSourceViewInput());

    Label labelDescLib = new Label(this, SWT.NONE);
    labelDescLib.setToolTipText(Messages.DTT0000.getText());
    labelDescLib.setText(Messages.DL0017.getText());

    // ?.
    Group grpInternalLibrary = new Group(this, SWT.NONE);
    grpInternalLibrary.setLayout(new GridLayout(2, false));
    GridData gdGrpInternalLibrary = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
    gdGrpInternalLibrary.heightHint = 150;
    grpInternalLibrary.setLayoutData(gdGrpInternalLibrary);
    grpInternalLibrary.setText(Messages.WT0004.getText());
    tableViewerInternalLib = CheckboxTableViewer.newCheckList(grpInternalLibrary,
            SWT.BORDER | SWT.FULL_SELECTION);
    // tableViewerInternalLib = new TableViewer(grpLibrary, SWT.BORDER |
    // SWT.CHECK |
    // SWT.FULL_SELECTION);
    Table table = tableViewerInternalLib.getTable();
    GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
    gridData.widthHint = 300;
    table.setLayoutData(gridData);

    Composite compInternalLibButton = new Composite(grpInternalLibrary, SWT.NONE);
    compInternalLibButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
    compInternalLibButton.setLayout(new GridLayout(1, false));

    Button btnInternalAllSelect = new Button(compInternalLibButton, SWT.NONE);
    btnInternalAllSelect.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            doBtnInternalAllSelectWidgetSelected(e);
        }
    });
    GridData gdBtnInternalAllSelect = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gdBtnInternalAllSelect.widthHint = 60;
    btnInternalAllSelect.setLayoutData(gdBtnInternalAllSelect);
    btnInternalAllSelect.setText(Messages.B0006.getText());

    Button btnInternalAllRelease = new Button(compInternalLibButton, SWT.NONE);
    btnInternalAllRelease.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            doBtnInternalAllReleaseWidgetSelected(e);
        }
    });
    GridData gdBtnInternalAllRelease = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gdBtnInternalAllRelease.widthHint = 60;
    btnInternalAllRelease.setLayoutData(gdBtnInternalAllRelease);
    btnInternalAllRelease.setText(Messages.B0007.getText());

    IObservableList observableList = createInternalLibViewInput();
    tableViewerInternalLib.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(Object element) {
            WritableValue value = (WritableValue) element;
            return value.getValue().toString();
        }

        @Override
        public Image getImage(Object element) {
            return JavaScriptUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_LIBRARY);
        }
    });
    ObservableListContentProvider listContentProvider = new ObservableListContentProvider();
    tableViewerInternalLib.setContentProvider(listContentProvider);
    tableViewerInternalLib.setInput(observableList);

    // ?.
    Group grpExternalLibrary = new Group(this, SWT.NONE);
    grpExternalLibrary.setText(Messages.WT0006.getText());
    grpExternalLibrary.setLayout(new GridLayout(2, false));
    GridData gdGrpExternalLibrary = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
    gdGrpExternalLibrary.heightHint = 150;
    grpExternalLibrary.setLayoutData(gdGrpExternalLibrary);

    tableViewerExternalLib = CheckboxTableViewer.newCheckList(grpExternalLibrary,
            SWT.BORDER | SWT.FULL_SELECTION);
    Table tableExternalLib = tableViewerExternalLib.getTable();
    GridData gdTableExternalLib = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
    gdTableExternalLib.widthHint = 300;
    tableExternalLib.setLayoutData(gdTableExternalLib);

    Composite compExternalLibButton = new Composite(grpExternalLibrary, SWT.NONE);
    compExternalLibButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
    compExternalLibButton.setLayout(new GridLayout(1, false));

    Button btnExternalAllSelect = new Button(compExternalLibButton, SWT.NONE);
    btnExternalAllSelect.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            doBtnExternalAllSelectWidgetSelected(e);
        }
    });
    GridData gdBtnExternalAllSelect = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gdBtnExternalAllSelect.widthHint = 60;
    btnExternalAllSelect.setLayoutData(gdBtnExternalAllSelect);
    btnExternalAllSelect.setText(Messages.B0006.getText());

    Button btnExternalAllRelease = new Button(compExternalLibButton, SWT.NONE);
    btnExternalAllRelease.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            doBtnExternalAllReleaseWidgetSelected(e);
        }
    });
    GridData gdBtnExternalAllRelease = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gdBtnExternalAllRelease.widthHint = 60;
    btnExternalAllRelease.setLayoutData(gdBtnExternalAllRelease);
    btnExternalAllRelease.setText(Messages.B0007.getText());

    IObservableList externalObservableList = createExternalLibViewInput();
    tableViewerExternalLib.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(Object element) {
            String value = (String) element;
            return value;
        }

        @Override
        public Image getImage(Object element) {
            return JavaScriptUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_LIBRARY);
        }
    });
    ObservableListContentProvider listExternalContentProvider = new ObservableListContentProvider();
    tableViewerExternalLib.setContentProvider(listExternalContentProvider);
    tableViewerExternalLib.setInput(externalObservableList);

    initialDataBinding();
    initialModel();
}

From source file:com.netxforge.base.cdo.ui.CDOStorageView.java

License:Open Source License

public void initDataBindings() {

    @SuppressWarnings("unused")
    DataBindingContext ctx = new DataBindingContext();

    ObservableListTreeContentProvider listTreeContentProvider = new ObservableListTreeContentProvider(
            new CDOObservableFactory(), new CDODataTreeStructureAdvisor());

    treeViewer.setContentProvider(listTreeContentProvider);

    IObservableSet knownElements = listTreeContentProvider.getKnownElements();

    IObservableMap[] labelMaps = new IObservableMap[2];

    labelMaps[0] = BeanProperties.value(ICDOData.class, "session").observeDetail(knownElements);

    labelMaps[1] = BeanProperties.value(ICDOData.class, "transaction").observeDetail(knownElements);

    ILabelProvider labelProvider = new ObservableMapLabelProvider(labelMaps) {

        @Override/*from   w  w w  . ja  va 2  s  . com*/
        public String getColumnText(Object element, int columnIndex) {
            if (element instanceof ICDOData) {
                ICDOData data = (ICDOData) element;
                switch (columnIndex) {
                case 0: {
                    return "Data instance: " + data.hashCode();
                }
                case 1: {
                    if (data.hasSession()) {
                        return data.getSession().toString();
                    } else {
                        return "Session not set";
                    }
                }
                case 2: {
                    if (data.hasTransaction()) {
                        return data.getTransaction().toString();
                    } else {
                        return "Transaction not set";
                    }
                }
                }
            }
            return super.getColumnText(element, columnIndex);
        }
    };

    treeViewer.setLabelProvider(labelProvider);

    // Use the concrete class, to make sure we have the bean methods.
    IObservableList dataObservable = BeanProperties.list(IClientCDODataProvider.class, "CDODataCollection")
            .observe(clientDataProvider);

    dataObservable.addChangeListener(new IChangeListener() {
        @Override
        public void handleChange(ChangeEvent event) {
            System.out.println("Change on our observable" + event);
        }

    });

    treeViewer.setInput(dataObservable);
}

From source file:com.netxforge.netxstudio.callflow.screens.CallFlows.java

License:Open Source License

public EMFDataBindingContext initDataBindings_() {

    EMFDataBindingContext context = new EMFDataBindingContext();

    // Bind a tree viewer to call flows and reference interfaces in the call
    // flow.//w  ww.  ja  v a 2 s  . com
    ObservableListTreeContentProvider cp = new ObservableListTreeContentProvider(
            new CallFlowsTreeFactoryImpl(editingService.getEditingDomain()),
            new CallFlowsTreeStructureAdvisorImpl());
    callFlowTreeViewer.setContentProvider(cp);

    {
        IObservableSet set = cp.getKnownElements();
        List<IObservableMap> observeMaps = Lists.newArrayList();

        observeMaps.add(EMFEditProperties
                .value(editingService.getEditingDomain(), ServicesPackage.Literals.SERVICE_FLOW__NAME)
                .observeDetail(set));

        observeMaps
                .add(EMFEditProperties
                        .value(editingService.getEditingDomain(),
                                ServicesPackage.Literals.SERVICE_FLOW_RELATIONSHIP__DIRECTION)
                        .observeDetail(set));

        observeMaps
                .add(EMFEditProperties
                        .value(editingService.getEditingDomain(),
                                ServicesPackage.Literals.SERVICE_FLOW_RELATIONSHIP__PROTOCOL)
                        .observeDetail(set));

        observeMaps.add(EMFEditProperties.value(editingService.getEditingDomain(),
                FeaturePath.fromList(ServicesPackage.Literals.SERVICE_FLOW_RELATIONSHIP__MESSAGE,
                        ProtocolsPackage.Literals.MESSAGE__NAME))
                .observeDetail(set));

        FeaturePath refRelationshipPath = FeaturePath
                .fromList(ServicesPackage.Literals.SERVICE_FLOW_RELATIONSHIP__REFERENCE_RELATIONSHIP);

        observeMaps.add(EMFEditProperties.value(editingService.getEditingDomain(), refRelationshipPath)
                .observeDetail(set));

        // Don't bind the protocol yet.
        IObservableMap[] map = new IObservableMap[observeMaps.size()];
        observeMaps.toArray(map);

        callFlowTreeViewer.setLabelProvider(new CallFlowsTreeLabelProvider(map));
    }

    IEMFListProperty callFlowsListProperty = EMFEditProperties.resource(editingService.getEditingDomain());
    callFlowTreeViewer.setInput(callFlowsListProperty.observe(servicesResource));

    {
        FeaturePath namePath = FeaturePath.fromList(ServicesPackage.Literals.SERVICE_FLOW__NAME);

        TextCellEditingSupport txtCellEditingSupportName = new TextCellEditingSupport(callFlowTreeViewer,
                context, callFlowTree, editingService.getEditingDomain(), namePath);

        treeViewerColumnName.setEditingSupport(txtCellEditingSupportName);
    }

    // Get the data to observe and set as input to our combo.
    IEMFListProperty refRelationshipsProperties = EMFEditProperties.multiList(editingService.getEditingDomain(),
            LibraryPackage.Literals.REFERENCE_NETWORK__REF_RELATIONSHIPS);
    //
    // ComputedList computedList = new ComputedList() {
    //
    // @Override
    // protected List<Object> calculate() {
    // List<Object> refRelationshipsAndServiceFlows = Lists
    // .newArrayList();
    // refRelationshipsAndServiceFlows.addAll(refNet
    // .getRefRelationships());
    // refRelationshipsAndServiceFlows.addAll(cdoResourceCallFlows
    // .getContents());
    // return refRelationshipsAndServiceFlows;
    // }
    // };

    // Set the binding for the cell editors.

    FeaturePath linkPath = FeaturePath
            .fromList(ServicesPackage.Literals.SERVICE_FLOW_RELATIONSHIP__REFERENCE_RELATIONSHIP);

    ComboBoxCellEditingSupport cmbCellEditingSupportLink = new ComboBoxCellEditingSupport(callFlowTreeViewer,
            context, callFlowTree, editingService.getEditingDomain(), linkPath) {

        /*
         * (non-Javadoc)
         * 
         * @see com.netxforge.netxstudio.callflow.screens.referenceNetwork.
         * ComboBoxCellEditingSupport#getCellEditor(java.lang.Object)
         */
        @Override
        protected CellEditor getCellEditor(Object element) {
            if (element instanceof ServiceFlowRelationship) {
                ServiceFlowRelationship sfRelationship = (ServiceFlowRelationship) element;
                if (sfRelationship.eIsSet(ServicesPackage.Literals.SERVICE_FLOW_RELATIONSHIP__SERVICE_FLOW)) {
                    return null; // we can't edit if the relationship is a
                                 // service flow.
                }
                return super.getCellEditor(element);
            }
            return null;
        }
    };

    treeViewerColumnLink.setEditingSupport(cmbCellEditingSupportLink);

    cmbCellEditingSupportLink.setInput(refRelationshipsProperties.observe(refNet));

    // Populate with an enum
    IObservableList directionsObservableList = new ComputedList() {
        @Override
        protected List<Object> calculate() {
            List<Object> result = Lists.newArrayList();
            result.addAll(ServiceFlowDirection.VALUES);
            return result;
        }
    };
    FeaturePath directionPath = FeaturePath
            .fromList(ServicesPackage.Literals.SERVICE_FLOW_RELATIONSHIP__DIRECTION);

    ComboBoxCellEditingSupport cmbCellEditingSupportDirection = new ComboBoxCellEditingSupport(
            callFlowTreeViewer, context, callFlowTree, editingService.getEditingDomain(), directionPath);

    treeViewerColumnDirection.setEditingSupport(cmbCellEditingSupportDirection);
    cmbCellEditingSupportDirection.setInput(directionsObservableList);

    // The protocol column
    {

        Resource protocolResource = editingService.getData(ProtocolsPackage.Literals.PROTOCOL);

        IEMFListProperty protocolsPropertyList = EMFEditProperties.resource(editingService.getEditingDomain());

        FeaturePath protocolPath = FeaturePath
                .fromList(ServicesPackage.Literals.SERVICE_FLOW_RELATIONSHIP__PROTOCOL);

        final ComboBoxCellEditingSupport cmbCellEditingSupportProtocol = new ComboBoxCellEditingSupport(
                callFlowTreeViewer, context, callFlowTree, editingService.getEditingDomain(), protocolPath);

        treeViewerColumnProtocol.setEditingSupport(cmbCellEditingSupportProtocol);
        cmbCellEditingSupportProtocol.setInput(protocolsPropertyList.observe(protocolResource));

    }

    {

        final IViewerObservableValue observeSingleSelection = ViewersObservables
                .observeSingleSelection(callFlowTreeViewer);

        // Compute from an observable.
        ComputedList computedList = new ComputedList() {

            @SuppressWarnings("rawtypes")
            @Override
            protected List calculate() {

                List<Object> result = Lists.newArrayList();

                Object value = observeSingleSelection.getValue();
                if (value instanceof ServiceFlowRelationship) {
                    ServiceFlowRelationship rel = (ServiceFlowRelationship) value;
                    Protocol protocol = rel.getProtocol();
                    if (protocol != null) {
                        for (Procedure p : protocol.getProcedures()) {
                            // get all the messages and put in our
                            // observable.
                            result.addAll(p.getMessages());
                        }
                    }
                }

                return result;
            }
        };

        FeaturePath msgPath = FeaturePath.fromList(ServicesPackage.Literals.SERVICE_FLOW_RELATIONSHIP__MESSAGE);

        ComboBoxCellEditingSupport cmbCellEditingSupportMessage = new ComboBoxCellEditingSupport(
                callFlowTreeViewer, context, callFlowTree, editingService.getEditingDomain(), msgPath);

        treeViewerColumnMessage.setEditingSupport(cmbCellEditingSupportMessage);
        cmbCellEditingSupportMessage.setInput(computedList);
    }

    // The message column.
    // {
    // FeaturePath messagePath = FeaturePath
    // .fromList(
    // ServicesPackage.Literals.SERVICE_FLOW_RELATIONSHIP__MESSAGE,
    // ProtocolsPackage.Literals.MESSAGE__NAME);
    //
    // TextCellEditingSupport txtCellEditingMessage = new
    // TextCellEditingSupport(
    // callFlowTreeViewer, context, callFlowTree,
    // editingService.getEditingDomain(), messagePath) {
    //
    // /*
    // * (non-Javadoc)
    // *
    // * @see
    // * com.netxforge.netxstudio.callflow.screens.referenceNetwork
    // * .TextCellEditingSupport
    // * #doCreateElementObservable(java.lang.Object,
    // * org.eclipse.jface.viewers.ViewerCell)
    // */
    // @Override
    // protected IObservableValue doCreateElementObservable(
    // Object element, ViewerCell cell) {
    // // make sure we have a message object for this service flow
    // // relationship.
    // if (element instanceof ServiceFlowRelationship) {
    // if (!((ServiceFlowRelationship) element)
    // .eIsSet(ServicesPackage.Literals.SERVICE_FLOW_RELATIONSHIP__MESSAGE))
    // {
    // Message createMessage = ProtocolsFactory.eINSTANCE
    // .createMessage();
    // createMessage.setName("new*");
    // ((ServiceFlowRelationship) element)
    // .setMessage(createMessage);
    // }
    // }
    // return super.doCreateElementObservable(element, cell);
    // }
    //
    // };
    //
    // treeViewerColumnMessage.setEditingSupport(txtCellEditingMessage);
    // }

    return context;
}

From source file:com.netxforge.netxstudio.callflow.screens.nodetypes.NodeTypes.java

License:Open Source License

public EMFDataBindingContext initDataBindings_() {

    EMFDataBindingContext bindingContext = new EMFDataBindingContext();

    ObservableListTreeContentProvider cp = new ObservableListTreeContentProvider(
            new NodeTypeTreeFactoryImpl(editingService.getEditingDomain()),
            new NodeTypeTreeStructureAdvisorImpl());
    nodeTypeTreeViewer.setContentProvider(cp);
    IObservableSet set = cp.getKnownElements();

    List<IObservableMap> mapList = Lists.newArrayList();

    mapList.add(//ww  w .  j a v  a  2 s .c om
            EMFEditProperties.value(editingService.getEditingDomain(), LibraryPackage.Literals.NODE_TYPE__NAME)
                    .observeDetail(set));

    mapList.add(EMFEditProperties
            .value(editingService.getEditingDomain(), LibraryPackage.Literals.NODE_TYPE__FUNCTIONS)
            .observeDetail(set));

    mapList.add(EMFEditProperties
            .value(editingService.getEditingDomain(), LibraryPackage.Literals.NODE_TYPE__EQUIPMENTS)
            .observeDetail(set));

    mapList.add(EMFEditProperties
            .value(editingService.getEditingDomain(), LibraryPackage.Literals.EQUIPMENT__EQUIPMENTS)
            .observeDetail(set));

    mapList.add(EMFEditProperties
            .value(editingService.getEditingDomain(), LibraryPackage.Literals.FUNCTION__FUNCTIONS)
            .observeDetail(set));

    mapList.add(
            EMFEditProperties.value(editingService.getEditingDomain(), LibraryPackage.Literals.COMPONENT__NAME)
                    .observeDetail(set));

    mapList.add(EMFEditProperties
            .value(editingService.getEditingDomain(), LibraryPackage.Literals.EQUIPMENT__EQUIPMENT_CODE)
            .observeDetail(set));

    IObservableMap[] map = new IObservableMap[mapList.size()];
    mapList.toArray(map);

    nodeTypeTreeViewer.setLabelProvider(new NodeTypeTreeLabelProvider(map));
    IEMFListProperty projects = EMFEditProperties.resource(editingService.getEditingDomain());

    IObservableList nodeTypeObservableList = projects.observe(nodeTypeResource);
    // obm.addObservable(nodeTypeObservableList);
    nodeTypeTreeViewer.setInput(nodeTypeObservableList);

    return bindingContext;
}

From source file:com.netxforge.netxstudio.callflow.screens.protocols.Protocols.java

License:Open Source License

public EMFDataBindingContext initDataBindings_() {

    // Bind a tree viewer to call flows and reference interfaces in the call
    // flow./*www .  j a va2  s  . co  m*/
    ObservableListTreeContentProvider listContentProvider = new ObservableListTreeContentProvider(
            new ProtocolsTreeFactoryImpl(editingService.getEditingDomain()),
            new ProtocolsTreeStructureAdvisorImpl());

    treeViewer.setContentProvider(listContentProvider);
    IObservableMap[] observeMaps = EMFObservables.observeMaps(listContentProvider.getKnownElements(),
            new EStructuralFeature[] { ProtocolsPackage.Literals.PROTOCOL__NAME,
                    ProtocolsPackage.Literals.PROTOCOL__DESCRIPTION, ProtocolsPackage.Literals.PROTOCOL__OSI,
                    ProtocolsPackage.Literals.PROTOCOL__SPECIFICATION,
                    ProtocolsPackage.Literals.PROCEDURE__NAME, ProtocolsPackage.Literals.MESSAGE__NAME,
                    ProtocolsPackage.Literals.MESSAGE__DESCRIPTION });
    treeViewer.setLabelProvider(new ProtocolsTreeLabelProvider(observeMaps));
    IEMFListProperty l = EMFEditProperties.resource(editingService.getEditingDomain());
    IObservableList protocolObservableList = l.observe(protocolResource);

    // obm.addObservable(toleranceObservableList);
    treeViewer.setInput(protocolObservableList);

    EMFDataBindingContext bindingContext = new EMFDataBindingContext();

    {

        IObservableFactory nameObservableFactory = new IObservableFactory() {

            IEMFValueProperty protocolNameProperty = EMFEditProperties.value(editingService.getEditingDomain(),
                    ProtocolsPackage.Literals.PROTOCOL__NAME);

            IEMFValueProperty procedureNameProperty = EMFEditProperties.value(editingService.getEditingDomain(),
                    ProtocolsPackage.Literals.PROCEDURE__NAME);

            IEMFValueProperty msgNameProperty = EMFEditProperties.value(editingService.getEditingDomain(),
                    ProtocolsPackage.Literals.MESSAGE__NAME);

            public IObservable createObservable(Object target) {
                if (target instanceof IObservableValue) {
                    return (IObservable) target;
                } else if (target instanceof Protocol) {
                    return protocolNameProperty.observe(target);
                } else if (target instanceof Procedure) {
                    return procedureNameProperty.observe(target);
                } else if (target instanceof Message) {
                    return msgNameProperty.observe(target);
                }
                return null;
            }
        };

        final TextCellEditingSupport editingSupportName = new TextCellEditingSupport(treeViewer, bindingContext,
                tree, editingService.getEditingDomain(), nameObservableFactory);

        tvcName.setEditingSupport(editingSupportName);
    }

    {

        IObservableFactory nameObservableFactory = new IObservableFactory() {

            IEMFValueProperty protocolNameProperty = EMFEditProperties.value(editingService.getEditingDomain(),
                    ProtocolsPackage.Literals.PROTOCOL__DESCRIPTION);

            IEMFValueProperty msgNameProperty = EMFEditProperties.value(editingService.getEditingDomain(),
                    ProtocolsPackage.Literals.MESSAGE__DESCRIPTION);

            public IObservable createObservable(Object target) {
                if (target instanceof IObservableValue) {
                    return (IObservable) target;
                } else if (target instanceof Protocol) {
                    return protocolNameProperty.observe(target);
                } else if (target instanceof Message) {
                    return msgNameProperty.observe(target);
                }
                return null;
            }
        };

        TextCellEditingSupport editingSupportDescription = new TextCellEditingSupport(treeViewer,
                bindingContext, tree, editingService.getEditingDomain(), nameObservableFactory) {

            @Override
            protected boolean canEdit(Object element) {
                return !(element instanceof Procedure);
            }
        };

        tvcDescription.setEditingSupport(editingSupportDescription);
    }

    return bindingContext;
}

From source file:com.netxforge.netxstudio.screens.f1.MonitoringTree.java

License:Open Source License

public EMFDataBindingContext initDataBindings_() {

    EMFDataBindingContext bindingContext = new EMFDataBindingContext();

    super.initDataBindings_();

    // Set to one month ago...will be overwritten if state is available.
    getPeriodComponent().presetLastMonth();

    ObservableListTreeContentProvider cp = new ObservableListTreeContentProvider(
            new MonitoringTreeFactoryImpl(editingService.getEditingDomain()),
            new MonitoringTreeStructureAdvisorImpl());
    monitoringTreeViewer.setContentProvider(cp);
    IObservableSet set = cp.getKnownElements();

    List<IObservableMap> mapList = Lists.newArrayList();

    mapList.add(//ww  w.  ja  v  a 2s .co m
            EMFEditProperties.value(editingService.getEditingDomain(), GenericsPackage.Literals.COMPANY__NAME)
                    .observeDetail(set));

    mapList.add(EMFEditProperties
            .value(editingService.getEditingDomain(), ServicesPackage.Literals.SERVICE__SERVICE_NAME)
            .observeDetail(set));

    mapList.add(EMFProperties.value(ServicesPackage.Literals.RFS_SERVICE__NODES).observeDetail(set));

    IObservableMap[] map = new IObservableMap[mapList.size()];
    mapList.toArray(map);

    monitoringTreeViewer.setLabelProvider(new MonitoringTreeLabelProvider(monitoringStateModel, map));

    IEMFListProperty projects = EMFEditProperties.resource(editingService.getEditingDomain());

    IObservableList servicesObservableList = projects.observe(operatorsResource);
    monitoringTreeViewer.setInput(servicesObservableList);

    // Monitoring Observable.
    // monitoringAggregate = new MonitoringAggregate(monitoringStateModel);

    // IViewerObservableValue observeSelection = ViewersObservables
    // .observeSingleSelection(monitoringTreeViewer);
    // observeSelection.addValueChangeListener(monitoringAggregate);

    return bindingContext;
}

From source file:com.netxforge.netxstudio.screens.f1.ServicesTree.java

License:Open Source License

public EMFDataBindingContext initDataBindings_() {

    EMFDataBindingContext bindingContext = new EMFDataBindingContext();

    ObservableListTreeContentProvider cp = new ObservableListTreeContentProvider(
            new RFSServiceTreeFactoryImpl(editingService.getEditingDomain()),
            new RFSServiceTreeStructureAdvisorImpl());
    serviceTreeViewer.setContentProvider(cp);
    IObservableSet set = cp.getKnownElements();

    List<IObservableMap> mapList = Lists.newArrayList();

    mapList.add(//  w w  w .j ava 2 s.c o m
            EMFEditProperties.value(editingService.getEditingDomain(), GenericsPackage.Literals.COMPANY__NAME)
                    .observeDetail(set));

    mapList.add(EMFEditProperties
            .value(editingService.getEditingDomain(), ServicesPackage.Literals.SERVICE__SERVICE_NAME)
            .observeDetail(set));

    mapList.add(EMFProperties.value(ServicesPackage.Literals.RFS_SERVICE__NODES).observeDetail(set));

    IObservableMap[] map = new IObservableMap[mapList.size()];
    mapList.toArray(map);

    serviceTreeViewer.setLabelProvider(new RFSServiceTreeLabelProvider(map));
    IEMFListProperty projects = EMFEditProperties.resource(editingService.getEditingDomain());

    IObservableList servicesObservableList = projects.observe(operatorsResource);
    serviceTreeViewer.setInput(servicesObservableList);

    return bindingContext;
}

From source file:com.netxforge.netxstudio.screens.f2.NodeTypes.java

License:Open Source License

public EMFDataBindingContext initDataBindings_() {

    EMFDataBindingContext bindingContext = new EMFDataBindingContext();

    ObservableListTreeContentProvider cp = new ObservableListTreeContentProvider(
            new NodeTypeTreeFactoryImpl(editingService.getEditingDomain()),
            new NodeTypeTreeStructureAdvisorImpl());
    nodeTypeTreeViewer.setContentProvider(cp);
    IObservableSet set = cp.getKnownElements();

    List<IObservableMap> mapList = Lists.newArrayList();

    mapList.add(//from   w w w .  j av  a2 s. co  m
            EMFEditProperties.value(editingService.getEditingDomain(), LibraryPackage.Literals.NODE_TYPE__NAME)
                    .observeDetail(set));

    mapList.add(EMFEditProperties
            .value(editingService.getEditingDomain(), LibraryPackage.Literals.NODE_TYPE__FUNCTIONS)
            .observeDetail(set));

    mapList.add(EMFEditProperties
            .value(editingService.getEditingDomain(), LibraryPackage.Literals.NODE_TYPE__EQUIPMENTS)
            .observeDetail(set));

    mapList.add(EMFEditProperties
            .value(editingService.getEditingDomain(), LibraryPackage.Literals.EQUIPMENT__EQUIPMENTS)
            .observeDetail(set));

    mapList.add(EMFEditProperties
            .value(editingService.getEditingDomain(), LibraryPackage.Literals.FUNCTION__FUNCTIONS)
            .observeDetail(set));

    mapList.add(
            EMFEditProperties.value(editingService.getEditingDomain(), LibraryPackage.Literals.COMPONENT__NAME)
                    .observeDetail(set));

    mapList.add(EMFEditProperties
            .value(editingService.getEditingDomain(), LibraryPackage.Literals.EQUIPMENT__EQUIPMENT_CODE)
            .observeDetail(set));

    IObservableMap[] map = new IObservableMap[mapList.size()];
    mapList.toArray(map);

    ntTreeLabelProvider = new NodeTypeTreeLabelProvider(stateModel);
    ntTreeLabelProvider.registerMap(map);

    nodeTypeTreeViewer.setLabelProvider(ntTreeLabelProvider);
    IEMFListProperty projects = EMFEditProperties.resource(editingService.getEditingDomain());

    IObservableList nodeTypeObservableList = projects.observe(nodeTypeResource);
    // obm.addObservable(nodeTypeObservableList);
    nodeTypeTreeViewer.setInput(nodeTypeObservableList);

    return bindingContext;
}

From source file:com.netxforge.netxstudio.screens.f3.Networks.java

License:Open Source License

public EMFDataBindingContext initDataBindings_() {

    EMFDataBindingContext bindingContext = new EMFDataBindingContext();

    ObservableListTreeContentProvider cp = new ObservableListTreeContentProvider(
            new NetworkTreeFactoryImpl(editingService.getEditingDomain()),
            new NetworkTreeStructureAdvisorImpl());

    networkTreeViewer.setContentProvider(cp);

    IObservableSet set = cp.getKnownElements();

    List<IObservableMap> observableMap = Lists.newArrayList();

    observableMap.add(/*from   w w  w. j  a v  a  2s. c o  m*/
            EMFEditProperties.value(editingService.getEditingDomain(), GenericsPackage.Literals.COMPANY__NAME)
                    .observeDetail(set));

    // CB propably not needed, as the factory will take care.
    // observableMap.add(EMFEditProperties.value(
    // editingService.getEditingDomain(),
    // OperatorsPackage.Literals.OPERATOR__NETWORKS)
    // .observeDetail(set));

    observableMap.add(
            EMFEditProperties.value(editingService.getEditingDomain(), OperatorsPackage.Literals.NETWORK__NAME)
                    .observeDetail(set));

    // observableMap.add(EMFEditProperties.value(
    // editingService.getEditingDomain(),
    // OperatorsPackage.Literals.NETWORK__NODES).observeDetail(set));

    observableMap.add(
            EMFEditProperties.value(editingService.getEditingDomain(), OperatorsPackage.Literals.NODE__NODE_ID)
                    .observeDetail(set));

    observableMap.add(EMFEditProperties
            .value(editingService.getEditingDomain(), OperatorsPackage.Literals.NODE__NODE_TYPE)
            .observeDetail(set));

    observableMap.add(EMFEditProperties
            .value(editingService.getEditingDomain(), OperatorsPackage.Literals.RELATIONSHIP__NAME)
            .observeDetail(set));

    // Relationship text changes.
    observableMap.add(EMFEditProperties
            .value(editingService.getEditingDomain(), OperatorsPackage.Literals.RELATIONSHIP__NODE_ID1_REF)
            .observeDetail(set));

    observableMap.add(EMFEditProperties
            .value(editingService.getEditingDomain(), OperatorsPackage.Literals.RELATIONSHIP__NODE_ID2_REF)
            .observeDetail(set));

    observableMap.add(EMFEditProperties
            .value(editingService.getEditingDomain(), OperatorsPackage.Literals.RELATIONSHIP__NAME)
            .observeDetail(set));

    observableMap.add(
            EMFEditProperties.value(editingService.getEditingDomain(), LibraryPackage.Literals.NODE_TYPE__NAME)
                    .observeDetail(set));

    observableMap.add(
            EMFEditProperties.value(editingService.getEditingDomain(), LibraryPackage.Literals.COMPONENT__NAME)
                    .observeDetail(set));

    // Notifiy LifeCycle Features.

    observableMap.add(EMFEditProperties
            .value(editingService.getEditingDomain(), FeaturePath.fromList(
                    LibraryPackage.Literals.COMPONENT__LIFECYCLE, GenericsPackage.Literals.LIFECYCLE__PROPOSED))
            .observeDetail(set));

    observableMap.add(EMFEditProperties.value(editingService.getEditingDomain(), FeaturePath.fromList(
            LibraryPackage.Literals.COMPONENT__LIFECYCLE, GenericsPackage.Literals.LIFECYCLE__PLANNED_DATE))
            .observeDetail(set));

    observableMap.add(EMFEditProperties.value(editingService.getEditingDomain(),
            FeaturePath.fromList(LibraryPackage.Literals.COMPONENT__LIFECYCLE,
                    GenericsPackage.Literals.LIFECYCLE__CONSTRUCTION_DATE))
            .observeDetail(set));

    observableMap.add(EMFEditProperties.value(editingService.getEditingDomain(), FeaturePath.fromList(
            LibraryPackage.Literals.COMPONENT__LIFECYCLE, GenericsPackage.Literals.LIFECYCLE__IN_SERVICE_DATE))
            .observeDetail(set));

    observableMap
            .add(EMFEditProperties
                    .value(editingService.getEditingDomain(),
                            FeaturePath.fromList(LibraryPackage.Literals.COMPONENT__LIFECYCLE,
                                    GenericsPackage.Literals.LIFECYCLE__OUT_OF_SERVICE_DATE))
                    .observeDetail(set));

    observableMap.add(EMFEditProperties
            .value(editingService.getEditingDomain(), LibraryPackage.Literals.COMPONENT__METRIC_REFS)
            .observeDetail(set));
    observableMap.add(EMFEditProperties
            .value(editingService.getEditingDomain(), LibraryPackage.Literals.COMPONENT__RESOURCE_REFS)
            .observeDetail(set));

    IObservableMap[] map = new IObservableMap[observableMap.size()];
    observableMap.toArray(map);

    networkTreeViewer.setLabelProvider(new NetworkTreeLabelProvider(map));

    IEMFListProperty networksResourceProperty = EMFEditProperties.resource(editingService.getEditingDomain());

    IObservableList networksObservableList = networksResourceProperty.observe(operatorsResource);

    networkTreeViewer.setInput(networksObservableList);

    return bindingContext;
}