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

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

Introduction

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

Prototype

public ObservableListContentProvider() 

Source Link

Document

Constructs an ObservableListContentProvider.

Usage

From source file:org.jboss.tools.openshift.internal.ui.wizard.newapp.TemplateParametersPage.java

License:Open Source License

public TableViewer createTable(final Composite tableContainer, IObservableList<IParameter> parametersObservable,
        DataBindingContext dbc) {//from  w ww .j av  a 2  s .  co m
    final Table table = new Table(tableContainer,
            SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL);
    table.setLinesVisible(true);
    table.setHeaderVisible(true);
    Image decorationImage = FieldDecorationRegistry.getDefault()
            .getFieldDecoration(FieldDecorationRegistry.DEC_ERROR).getImage();
    final ObservableMap<String, IStatus> cellsValidationStatusObservable = new WritableMap<String, IStatus>(
            String.class, IStatus.class);
    final TableViewerCellDecorationManager decorations = new TableViewerCellDecorationManager(decorationImage,
            table);
    parametersObservable
            .addListChangeListener(onParametersChanged(decorations, cellsValidationStatusObservable));
    TableViewer viewer = new TableViewerBuilder(table, tableContainer)
            .contentProvider(new ArrayContentProvider()).column(new CellLabelProvider() {

                @Override
                public void update(ViewerCell cell) {
                    Assert.isLegal(cell.getElement() instanceof IParameter, "cell element is not a IParameter");

                    IParameter parameter = (IParameter) cell.getElement();
                    String label = parameter.getName();
                    if (parameter.isRequired()) {
                        label = markRequired(label);
                    }
                    cell.setText(label);
                }

                private String markRequired(String label) {
                    return label += " *";
                }

                @Override
                public String getToolTipText(Object object) {
                    Assert.isLegal(object instanceof IParameter, "cell element is not a IParameter");

                    return ((IParameter) object).getDescription();
                }

                @Override
                public int getToolTipDisplayDelayTime(Object object) {
                    return 0;
                }
            }).name("Name").align(SWT.LEFT).weight(1).minWidth(180).buildColumn()
            .column(new CellLabelProvider() {

                @Override
                public void update(ViewerCell cell) {
                    Assert.isLegal(cell.getElement() instanceof IParameter, "cell element is not a IParameter");

                    final IParameter parameter = (IParameter) cell.getElement();
                    String label = TemplateParameterViewerUtils.getValueLabel(parameter);
                    cell.setText(label);

                    IStatus validationStatus = validate(parameter);
                    cellsValidationStatusObservable.put(parameter.getName(), validationStatus);
                    decorations.toggle(!validationStatus.isOK(), cell);
                }

                private IStatus validate(IParameter parameter) {
                    if (parameter.isRequired()) {
                        if (StringUtils.isEmpty(parameter.getValue())
                                && StringUtils.isEmpty(parameter.getGeneratorName())) {
                            return ValidationStatus.error(NLS.bind(
                                    "Parameter {0} is required, please provide a value.", parameter.getName()));
                        }
                        ;
                    }
                    IStatus status = gitSourceValidator.validate(parameter);
                    if (!status.isOK()) {
                        return status;
                    }
                    return ValidationStatus.ok();
                }

                @Override
                public String getToolTipText(Object object) {
                    Assert.isLegal(object instanceof IParameter, "cell element is not a IParameter");

                    return ((IParameter) object).getDescription();
                }

                @Override
                public int getToolTipDisplayDelayTime(Object object) {
                    return 0;
                }

            }).name("Value").align(SWT.LEFT).weight(1).buildColumn().buildViewer();

    viewer.setComparator(new ParameterNameViewerComparator());
    viewer.setContentProvider(new ObservableListContentProvider());

    // cells validity
    dbc.addValidationStatusProvider(new MultiValidator() {

        @Override
        protected IStatus validate() {
            for (Iterator<IStatus> iterator = (Iterator<IStatus>) cellsValidationStatusObservable.values()
                    .iterator(); iterator.hasNext();) {
                IStatus cellValidationStatus = iterator.next();
                if (cellValidationStatus != null && !cellValidationStatus.isOK()) {
                    return cellValidationStatus;
                }
            }
            return ValidationStatus.ok();
        }
    });
    return viewer;
}

From source file:org.jboss.tools.openshift.internal.ui.wizard.project.ManageProjectsWizardPage.java

License:Open Source License

@Override
protected void doCreateControls(Composite parent, DataBindingContext dbc) {
    GridLayoutFactory.fillDefaults().margins(10, 10).applyTo(parent);

    Group group = new Group(parent, SWT.NONE);
    group.setText("OpenShift Projects");
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).applyTo(group);
    GridLayoutFactory.fillDefaults().numColumns(2).margins(6, 6).applyTo(group);

    // table/*from w ww.  j a  v a  2s . c o m*/
    Composite tableContainer = new Composite(group, SWT.NONE);
    this.viewer = createTable(tableContainer);
    GridDataFactory.fillDefaults().span(1, 5).align(SWT.FILL, SWT.FILL).grab(true, true)
            .applyTo(tableContainer);
    viewer.setContentProvider(new ObservableListContentProvider());
    viewer.setInput(BeanProperties.list(ManageProjectsWizardPageModel.PROPERTY_PROJECTS).observe(pageModel));
    loadProjects(dbc);
    initialProjects = getProjects();
    viewer.setComparator(new ProjectViewerComparator());

    IObservableValue viewerSingleSelection = ViewerProperties.singleSelection().observe(viewer);
    ValueBindingBuilder.bind(viewerSingleSelection).to(
            BeanProperties.value(ManageProjectsWizardPageModel.PROPERTY_SELECTED_PROJECT).observe(pageModel))
            .in(dbc);

    // new 
    Button newButton = new Button(group, SWT.PUSH);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).applyTo(newButton);
    newButton.setText("New...");
    newButton.addSelectionListener(onNew());
    UIUtils.setDefaultButtonWidth(newButton);

    // remove
    Button removeButton = new Button(group, SWT.PUSH);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).applyTo(removeButton);
    removeButton.setText("Remove...");
    removeButton.addSelectionListener(onRemove(dbc));
    ValueBindingBuilder.bind(WidgetProperties.enabled().observe(removeButton)).notUpdatingParticipant()
            .to(viewerSingleSelection).converting(new IsNotNull2BooleanConverter()).in(dbc);
    UIUtils.setDefaultButtonWidth(removeButton);

    Composite filler = new Composite(group, SWT.None);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).applyTo(filler);

    // refresh
    Button refreshButton = new Button(group, SWT.PUSH);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.END).applyTo(refreshButton);
    refreshButton.setText("Refresh...");
    refreshButton.addSelectionListener(onRefresh(dbc));
    UIUtils.setDefaultButtonWidth(refreshButton);
}

From source file:org.jcryptool.actions.ui.views.ActionView.java

License:Open Source License

private void createActionTable(Composite parent) {
    // Creating a table viewer
    viewer = new TableViewer(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);

    viewer.getTable().setLinesVisible(true);
    viewer.getTable().setHeaderVisible(true);

    TableViewerColumn column = new TableViewerColumn(viewer, SWT.LEFT);
    column.getColumn().setText(Messages.ActionView_5);
    column.getColumn().setToolTipText(Messages.ActionView_6);
    column.getColumn().setWidth(50);/*ww w . j av a 2 s.c  o  m*/
    column.getColumn().setMoveable(true);

    column = new TableViewerColumn(viewer, SWT.LEFT);
    column.getColumn().setText(Messages.ActionView_0);
    column.getColumn().setToolTipText(Messages.ActionView_1);
    column.getColumn().setWidth(80);
    column.getColumn().setMoveable(true);

    filenameColumn = new TableViewerColumn(viewer, SWT.LEFT);
    filenameColumn.getColumn().setText(Messages.ActionView_2);
    filenameColumn.getColumn().setToolTipText(Messages.ActionView_3);
    filenameColumn.getColumn().setMoveable(true);
    setFilenameVisibility();

    viewer.setContentProvider(new ObservableListContentProvider());
    viewer.setLabelProvider(new ActionLabelProvider());

    viewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent e) {
        }
    });

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent e) {
            ActionItem action = (ActionItem) ((IStructuredSelection) viewer.getSelection()).getFirstElement();
            if (action != null) {
                detailTextfield.setText(action.getDetails());
                if (detailTextfield.getLineCount() > 0) {
                    detailTextfield.setLineBackground(0, 1, colorLightShadow);
                    StyleRange styleRange = new StyleRange();
                    styleRange.start = 0;
                    styleRange.length = detailTextfield.getText().indexOf(CRLF);
                    styleRange.fontStyle = SWT.BOLD;
                    detailTextfield.setStyleRange(styleRange);
                    detailTextfield.setTabs(20);

                    int i = 0;
                    int l = 0;
                    while (i >= 0) {
                        i = detailTextfield.getText().indexOf(CRLF, i + 1);
                        l = detailTextfield.getText().indexOf(":", i + 1) - i; //$NON-NLS-1$
                        if (l > 0 && i >= 0) {
                            styleRange.start = i;
                            styleRange.length = l;
                            detailTextfield.setStyleRange(styleRange);
                        }

                    }
                }
            } else {
                detailTextfield.setText(""); //$NON-NLS-1$
            }
        }
    });

    viewer.setInput(ActionCascadeService.getInstance().observeActionItems());

    ActionCascadeService.getInstance().observeActionItems().addListChangeListener(this);

    getSite().setSelectionProvider(viewer);
}

From source file:org.marketcetera.photon.commons.ui.table.TableSupport.java

/**
 * Creates the table on the provided parent composite.
 * //from w  w  w  . ja  v a 2  s .c o m
 * @param parent
 *            the parent widget
 */
public void createTable(Composite parent) {
    Composite container = new Composite(parent, SWT.NONE);
    TableColumnLayout layout = new TableColumnLayout();
    container.setLayout(layout);
    final Table table = new Table(container, mConfiguration.getTableStyle());
    mTableViewer = new TableViewer(table);

    final ColumnComparator comparator = new ColumnComparator();

    SelectionListener listener = new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            // determine new sort column and direction
            TableColumn sortColumn = table.getSortColumn();
            TableColumn currentColumn = (TableColumn) e.widget;
            final int index = table.indexOf(currentColumn);
            int dir = table.getSortDirection();
            if (sortColumn == currentColumn) {
                dir = dir == SWT.UP ? SWT.DOWN : SWT.UP;
            } else {
                table.setSortColumn(currentColumn);
                dir = SWT.UP;
            }
            table.setSortDirection(dir);
            comparator.setSort(dir == SWT.UP ? 1 : -1);
            comparator.setIndex(index);
            mTableViewer.refresh();
        }
    };

    ColumnConfiguration[] descriptors = mConfiguration.getColumns();
    String[] beanProperties = new String[descriptors.length];
    for (int i = 0; i < descriptors.length; i++) {
        ColumnConfiguration descriptor = descriptors[i];
        TableColumn c = new TableColumn(table, descriptor.getStyle());
        if (mConfiguration.isHeaderVisible() && descriptor.getHeading() != null) {
            c.setText(descriptor.getHeading());
        }
        c.setResizable(descriptor.isResizable());
        c.setMoveable(descriptor.isMovable());
        if (descriptor.isSortable()) {
            c.addSelectionListener(listener);
        }
        layout.setColumnData(c, descriptor.getLayoutData());
        beanProperties[i] = descriptor.getBeanProperty();
        new TableViewerColumn(mTableViewer, c);
    }
    mTableViewer.getTable().setHeaderVisible(mConfiguration.isHeaderVisible());

    // if no class was provided, don't set up comparator, content, or label providers, assume
    // the users of this class will handle manually
    if (mConfiguration.getItemClass() != null) {
        mTableViewer.setComparator(comparator);
        ObservableListContentProvider contentProvider = new ObservableListContentProvider();
        mTableViewer.setContentProvider(contentProvider);
        final IObservableMap[] columnMaps;
        if (mConfiguration.isDynamicColumns()) {
            columnMaps = BeansObservables.observeMaps(contentProvider.getKnownElements(),
                    mConfiguration.getItemClass(), beanProperties);
        } else {
            columnMaps = PojoObservables.observeMaps(contentProvider.getKnownElements(),
                    mConfiguration.getItemClass(), beanProperties);
        }
        mTableViewer.setLabelProvider(new ObservableMapLabelProvider(columnMaps));
    }

    mControlCreated = true;
}

From source file:org.marketcetera.photon.internal.marketdata.ui.MarketDepthView.java

private void hookupData() {
    /*/*  w ww  .  java  2 s  .c  o  m*/
     * Note that we are assuming equity here.
     */
    mDataItem = mMarketData.getDepthOfBook(new Equity(mSymbol), mProduct);
    ObservableListContentProvider bids = new ObservableListContentProvider();
    mBidsTable.getTableViewer().setContentProvider(bids);
    mBidsTable.getTableViewer()
            .setLabelProvider(
                    new ObservableMapLabelProvider(ObjectArrays.concat(createTimeMap(bids),
                            EMFObservables.observeMaps(bids.getKnownElements(),
                                    new EStructuralFeature[] { MDPackage.Literals.MD_QUOTE__SOURCE,
                                            MDPackage.Literals.MD_QUOTE__SIZE,
                                            MDPackage.Literals.MD_QUOTE__PRICE }))));
    setSortColumn(mBidsTable, new BidComparator(), 3, SWT.DOWN);
    mBidsTable.getTableViewer()
            .setInput(EMFObservables.observeList(mDataItem.get(), MDPackage.Literals.MD_DEPTH_OF_BOOK__BIDS));

    ObservableListContentProvider asks = new ObservableListContentProvider();
    mAsksTable.getTableViewer().setContentProvider(asks);
    mAsksTable.getTableViewer()
            .setLabelProvider(new ObservableMapLabelProvider(ObjectArrays.concat(
                    EMFObservables.observeMaps(asks.getKnownElements(),
                            new EStructuralFeature[] { MDPackage.Literals.MD_QUOTE__PRICE,
                                    MDPackage.Literals.MD_QUOTE__SIZE, MDPackage.Literals.MD_QUOTE__SOURCE }),
                    createTimeMap(asks))));
    setSortColumn(mAsksTable, new AskComparator(), 0, SWT.UP);
    mAsksTable.getTableViewer()
            .setInput(EMFObservables.observeList(mDataItem.get(), MDPackage.Literals.MD_DEPTH_OF_BOOK__ASKS));
}

From source file:org.marketcetera.photon.internal.strategy.ui.StrategiesView.java

@Override
public void createPartControl(Composite parent) {
    mViewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    ObservableListContentProvider contentProvider = new ObservableListContentProvider();
    mViewer.setContentProvider(contentProvider);
    mViewer.setLabelProvider(new StrategyLabelProvider(contentProvider.getKnownElements()));
    mViewer.setComparator(new ViewerComparator() {
        @Override// w w w .  j a  v a  2  s.  c  o  m
        public int category(Object element) {
            return element instanceof RemoteStrategyAgent ? 0 : 1;
        }
    });
    mViewer.setInput(StrategyManager.getCurrent().getStrategies());
    getViewSite().setSelectionProvider(mViewer);
    makeActions();
    hookContextMenu();
    hookDoubleClickAction();
}

From source file:org.marketcetera.photon.views.MarketDataView.java

@Override
public void createPartControl(Composite parent) {
    final IActionBars actionBars = getViewSite().getActionBars();
    IToolBarManager toolbar = actionBars.getToolBarManager();
    mSymbolEntryText = new TextContributionItem(""); //$NON-NLS-1$
    toolbar.add(mSymbolEntryText);/*from   w ww . j a va  2s  .  c o  m*/
    toolbar.add(new AddSymbolAction(mSymbolEntryText, this));

    final Table table = new Table(parent, SWT.MULTI | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.BORDER);
    table.setHeaderVisible(true);
    mViewer = new TableViewer(table);
    GridDataFactory.defaultsFor(table).applyTo(table);

    final MarketDataItemComparator comparator = new MarketDataItemComparator();
    mViewer.setComparator(comparator);

    SelectionListener listener = new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            // determine new sort column and direction
            TableColumn sortColumn = table.getSortColumn();
            TableColumn currentColumn = (TableColumn) e.widget;
            final int index = table.indexOf(currentColumn);
            int dir = table.getSortDirection();
            if (sortColumn == currentColumn) {
                dir = dir == SWT.UP ? SWT.DOWN : SWT.UP;
            } else {
                table.setSortColumn(currentColumn);
                dir = SWT.UP;
            }
            table.setSortDirection(dir);
            comparator.setSort(dir == SWT.UP ? 1 : -1);
            comparator.setIndex(index);
            mViewer.refresh();
        }
    };

    // create columns, using FIXFieldLocalizer to preserve backwards
    // compatibility
    TableViewerColumn symbolColumn = new TableViewerColumn(mViewer, createColumn(table,
            FIXFieldLocalizer.getLocalizedFIXFieldName(Symbol.class.getSimpleName()), SWT.LEFT, listener));
    symbolColumn.setEditingSupport(new SymbolEditingSupport());
    createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(LastPx.class.getSimpleName()), SWT.RIGHT,
            listener);
    createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(LastQty.class.getSimpleName()), SWT.RIGHT,
            listener);
    createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(BidSize.class.getSimpleName()), SWT.RIGHT,
            listener);
    createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(BidPx.class.getSimpleName()), SWT.RIGHT,
            listener);
    createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(OfferPx.class.getSimpleName()), SWT.RIGHT,
            listener);
    createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(OfferSize.class.getSimpleName()), SWT.RIGHT,
            listener);

    // restore table state if it exists
    if (mViewState != null) {
        ColumnState.restore(table, mViewState);
        for (TableColumn column : table.getColumns()) {
            if (column.getWidth() == 0) {
                column.setResizable(false);
            }
        }
    }

    registerContextMenu();
    getSite().setSelectionProvider(mViewer);

    ObservableListContentProvider content = new ObservableListContentProvider();
    mViewer.setContentProvider(content);
    IObservableSet domain = content.getKnownElements();
    IObservableMap[] maps = new IObservableMap[] {
            BeansObservables.observeMap(domain, MarketDataViewItem.class, "symbol"), //$NON-NLS-1$
            createCompositeMap(domain, "latestTick", MDPackage.Literals.MD_LATEST_TICK__PRICE), //$NON-NLS-1$
            createCompositeMap(domain, "latestTick", MDPackage.Literals.MD_LATEST_TICK__SIZE), //$NON-NLS-1$
            createCompositeMap(domain, "topOfBook", MDPackage.Literals.MD_TOP_OF_BOOK__BID_SIZE), //$NON-NLS-1$
            createCompositeMap(domain, "topOfBook", MDPackage.Literals.MD_TOP_OF_BOOK__BID_PRICE), //$NON-NLS-1$
            createCompositeMap(domain, "topOfBook", MDPackage.Literals.MD_TOP_OF_BOOK__ASK_PRICE), //$NON-NLS-1$
            createCompositeMap(domain, "topOfBook", MDPackage.Literals.MD_TOP_OF_BOOK__ASK_SIZE) //$NON-NLS-1$
    };
    mViewer.setLabelProvider(new ObservableMapLabelProvider(maps));
    mViewer.setUseHashlookup(true);
    mItems = WritableList.withElementType(MarketDataViewItem.class);
    mViewer.setInput(mItems);
}

From source file:org.marketcetera.photon.views.OrderTicketView.java

/**
 * Set up viewers./*  w  w w  .  ja  v a  2  s .  c  o  m*/
 * 
 * @param ticket
 */
protected void initViewers(T ticket) {
    /*
     * Side combo based on Side enum.
     */
    mSideComboViewer = new ComboViewer(ticket.getSideCombo());
    mSideComboViewer.setContentProvider(new ArrayContentProvider());
    mSideComboViewer.setInput(getModel().getValidSideValues());

    /*
     * Order type combo based on OrderType enum.
     */
    mOrderTypeComboViewer = new ComboViewer(ticket.getOrderTypeCombo());
    mOrderTypeComboViewer.setContentProvider(new ArrayContentProvider());
    mOrderTypeComboViewer.setInput(getModel().getValidOrderTypeValues());

    /*
     * Broker combo based on available brokers.
     */
    mAvailableBrokersViewer = new ComboViewer(ticket.getBrokerCombo());
    mAvailableBrokersViewer.setContentProvider(new ObservableListContentProvider());
    mAvailableBrokersViewer.setLabelProvider(new BrokerLabelProvider());
    mAvailableBrokersViewer.setInput(getModel().getValidBrokers());

    /*
     * Time in Force combo based on TimeInForce enum.
     * 
     * An extra blank entry is added since the field is optional.
     */
    mTimeInForceComboViewer = new ComboViewer(ticket.getTifCombo());
    mTimeInForceComboViewer.setContentProvider(new ArrayContentProvider());
    mTimeInForceComboViewer.setInput(getModel().getValidTimeInForceValues());

    /*
     * Custom fields table.
     * 
     * Input is bound to model in bindCustomFields.
     */
    mCustomFieldsTableViewer = new CheckboxTableViewer(ticket.getCustomFieldsTable());
    ObservableListContentProvider contentProvider = new ObservableListContentProvider();
    mCustomFieldsTableViewer.setContentProvider(contentProvider);
    mCustomFieldsTableViewer.setLabelProvider(
            new ObservableMapLabelProvider(BeansObservables.observeMaps(contentProvider.getKnownElements(),
                    CustomField.class, new String[] { "keyString", "valueString" })));//$NON-NLS-1$ //$NON-NLS-2$
}

From source file:org.openscada.contrib.da.server.ui.launcher.HiveRunnerViewer.java

License:Open Source License

public void create(final Composite parent) {
    this.shell = parent.getShell();

    final Composite wrapper = new Composite(parent, SWT.NONE);

    parent.setLayout(new GridLayout(1, false));
    wrapper.setLayout(new FillLayout(SWT.HORIZONTAL));
    wrapper.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));

    this.start = new Button(wrapper, SWT.PUSH);
    this.start.setText("Start");
    this.start.addSelectionListener(new SelectionAdapter() {
        @Override//from  www .j av  a2  s . co m
        public void widgetSelected(final org.eclipse.swt.events.SelectionEvent e) {
            handleStart();
        };
    });
    this.stop = new Button(wrapper, SWT.PUSH);
    this.stop.setText("Stop");
    this.stop.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final org.eclipse.swt.events.SelectionEvent e) {
            handleStop();
        };
    });

    this.viewer = new ListViewer(parent);
    this.viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    this.viewer.setContentProvider(new ObservableListContentProvider());
    this.viewer.setInput(this.exporterList);

    parent.addDisposeListener(new DisposeListener() {

        @Override
        public void widgetDisposed(final DisposeEvent e) {
            handleDispose();
        }
    });
    update();
}

From source file:org.openscada.core.ui.connection.information.details.PropertiesTab.java

License:Open Source License

@Override
public void createTab(final TabFolder tabFolder) {
    this.item = new TabItem(tabFolder, SWT.NONE);
    this.item.setText("Properties");
    this.item.addDisposeListener(new DisposeListener() {

        @Override/*from  ww  w  .  j a  v  a2  s.  co m*/
        public void widgetDisposed(final DisposeEvent e) {
            handleDispose();
        }
    });

    this.viewer = new TableViewer(tabFolder);
    this.viewer.getTable().setHeaderVisible(true);

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

    this.contentProvider = new ObservableListContentProvider();
    this.viewer.setContentProvider(this.contentProvider);

    this.list = new WritableList(SWTObservables.getRealm(tabFolder.getDisplay()));

    {
        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.setLabelProvider(new ObservableMapCellLabelProvider(
                PojoObservables.observeMap(this.contentProvider.getKnownElements(), Entry.class, "key"))); //$NON-NLS-1$
        layout.addColumnData(new ColumnWeightData(50));
        col.getColumn().setText("Key");
    }

    {
        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.setLabelProvider(new ObservableMapCellLabelProvider(
                PojoObservables.observeMap(this.contentProvider.getKnownElements(), Entry.class, "value"))); //$NON-NLS-1$
        layout.addColumnData(new ColumnWeightData(50));
        col.getColumn().setText("Value");
    }

    this.item.setControl(this.viewer.getControl());

    this.viewer.setInput(this.list);

    triggerTimer();
}