List of usage examples for org.eclipse.jface.viewers TableViewer setContentProvider
@Override public void setContentProvider(IContentProvider provider)
AbstractTableViewer
. From source file:org.akrogen.tkui.css.swt.engine.table.CSSSWTTableViewerEngineTest2.java
License:Open Source License
public static void main(String[] args) { try {/*from w w w . ja v a 2s .c o m*/ Display display = new Display(); CSSEngine engine = new CSSSWTEngineImpl(display); engine.parseStyleSheet(new StringReader( "TableItem:odd {font:Roman 12 italic normal; background-color: #2BAFFA; color:white; background-image: url(./images/icons/type/class.gif);}" + "TableItem:even {background-color:#edb5f4, 100%; color:black;}")); Shell shell = new Shell(display, SWT.SHELL_TRIM); FillLayout layout = new FillLayout(); shell.setLayout(layout); Composite panel1 = new Composite(shell, SWT.NONE); panel1.setLayout(new FillLayout()); final List datas = new ArrayList(); for (int i = 0; i < 20; i++) { datas.add(new Item("Item" + i + "_0", "Item" + i + "_1")); } final TableViewer tableViewer = new TableViewer(panel1); tableViewer.setContentProvider(new IStructuredContentProvider() { public void dispose() { // TODO Auto-generated method stub } public Object[] getElements(Object inputElement) { return datas.toArray(); } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); tableViewer.setLabelProvider(new MyCSSTableLabelProvider(engine, tableViewer)); Table table = tableViewer.getTable(); table.setHeaderVisible(true); TableColumn tableColumn1 = new TableColumn(table, SWT.LEFT, 0); tableColumn1.setText("Name"); tableColumn1.setWidth(200); TableColumn tableColumn2 = new TableColumn(table, SWT.LEFT, 0); tableColumn2.setText("Lastname"); tableColumn2.setWidth(200); table.setLinesVisible(true); tableViewer.setInput(datas); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } catch (Exception ex) { ex.printStackTrace(); } }
From source file:org.apache.directory.studio.schemaeditor.view.preferences.PluginPreferencePage.java
License:Apache License
/** * {@inheritDoc}/*from w w w . j a v a 2 s. c om*/ */ protected Control createContents(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout()); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); // SchemaConnectors Group Group schemaConnectorsGroup = new Group(composite, SWT.NONE); schemaConnectorsGroup.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false)); schemaConnectorsGroup.setLayout(new GridLayout(2, true)); schemaConnectorsGroup.setText(Messages.getString("PluginPreferencePage.SchemaConnectors")); //$NON-NLS-1$ // Available Schema Connectors Label Label availableSchemaConnectorsLabel = new Label(schemaConnectorsGroup, SWT.NONE); availableSchemaConnectorsLabel.setText(Messages.getString("PluginPreferencePage.AvailableConnectorsColon")); //$NON-NLS-1$ // Description Label Label descriptionLabel = new Label(schemaConnectorsGroup, SWT.NONE); descriptionLabel.setText(Messages.getString("PluginPreferencePage.DescriptionColon")); //$NON-NLS-1$ // SchemaConnectors TableViewer final TableViewer schemaConnectorsTableViewer = new TableViewer(schemaConnectorsGroup, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION); GridData gridData = new GridData(SWT.FILL, SWT.NONE, true, false); gridData.heightHint = 125; schemaConnectorsTableViewer.getTable().setLayoutData(gridData); schemaConnectorsTableViewer.setContentProvider(new ArrayContentProvider()); schemaConnectorsTableViewer.setLabelProvider(new LabelProvider() { public String getText(Object element) { return ((SchemaConnector) element).getName(); } public Image getImage(Object element) { return Activator.getDefault().getImage(PluginConstants.IMG_SCHEMA_CONNECTOR); } }); schemaConnectorsTableViewer.setComparator(new ViewerComparator(new Comparator<String>() { public int compare(String o1, String o2) { if ((o1 != null) && (o2 != null)) { return o1.compareToIgnoreCase(o2); } // Default return 0; } })); // schemaConnectorsTableViewer.setComparator( new ViewerComparator( new Comparator<SchemaConnector>() // { // public int compare( SchemaConnector o1, SchemaConnector o2 ) // { // String name1 = o1.getName(); // String name2 = o2.getName(); // // if ( ( name1 != null ) && ( name2 != null ) ) // { // return name1.compareToIgnoreCase( name2 ); // } // // // Default // return 0; // } // } ) ); schemaConnectorsTableViewer.setInput(PluginUtils.getSchemaConnectors()); // Description Text final Text descriptionText = new Text(schemaConnectorsGroup, SWT.BORDER | SWT.MULTI | SWT.READ_ONLY); descriptionText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); schemaConnectorsTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { SchemaConnector schemaConnector = (SchemaConnector) ((StructuredSelection) schemaConnectorsTableViewer .getSelection()).getFirstElement(); if (schemaConnector != null) { descriptionText.setText(schemaConnector.getDescription()); } } }); return parent; }
From source file:org.axdt.asdoc.ui.preferences.DocTableFieldEditor.java
License:Open Source License
protected TableViewer createTableViewer(Composite parent) { Composite tableComp = new Composite(parent, SWT.NONE); tableComp.setLayout(new TableColumnLayout()); TableViewer tableViewer = new TableViewer(tableComp, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION); tableViewer.setContentProvider(new ArrayContentProvider()); tableViewer.getTable().setHeaderVisible(true); tableViewer.getTable().setLinesVisible(true); createTableViwerColumn(tableViewer, "Name", new ColumnLabelProvider() { @Override// www. j av a 2 s . c o m public String getText(Object element) { if (element instanceof DocItem) { DocItem item = (DocItem) element; return item.name; } return super.getText(element); } }, new ColumnWeightData(1, 50, true)); createTableViwerColumn(tableViewer, "Url", new ColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof DocItem) { DocItem item = (DocItem) element; return item.url; } return super.getText(element); } }, new ColumnWeightData(5, 250, true)); return tableViewer; }
From source file:org.ayound.js.debug.ui.views.EvalView.java
License:Apache License
@Override protected Viewer createViewer(Composite parent) { GridLayout layout = new GridLayout(2, false); layout.makeColumnsEqualWidth = true; parent.setLayout(layout);// ww w . ja v a 2 s . c o m Table table = new Table(parent, SWT.NONE); TableColumn column1 = new TableColumn(table, SWT.NONE); column1.setWidth(200); column1.setResizable(true); table.setHeaderVisible(false); table.setLayoutData(new GridData(GridData.FILL_BOTH)); TableViewer viewer = new TableViewer(table); getSite().getWorkbenchWindow().getSelectionService().addSelectionListener(IDebugUIConstants.ID_DEBUG_VIEW, this); JsDebugCorePlugin.getDefault().addEvalListener(this); viewer.setContentProvider(new IStructuredContentProvider() { public Object[] getElements(Object inputElement) { if (inputElement instanceof List) { return ((List) inputElement).toArray(); } return null; } public void dispose() { // TODO Auto-generated method stub } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { // TODO Auto-generated method stub } }); viewer.setLabelProvider(new ITableLabelProvider() { public Image getColumnImage(Object element, int columnIndex) { // TODO Auto-generated method stub return null; } public String getColumnText(Object element, int columnIndex) { if (element instanceof ExpressionModel) { ExpressionModel model = (ExpressionModel) element; if (columnIndex == 0) { if (model.getError() != null) { return model.getExpression() + " = error : " + model.getError(); } else { return model.getExpression() + " = " + model.getResult(); } } } return null; } public void addListener(ILabelProviderListener listener) { // TODO Auto-generated method stub } public void dispose() { // TODO Auto-generated method stub } public boolean isLabelProperty(Object element, String property) { // TODO Auto-generated method stub return false; } public void removeListener(ILabelProviderListener listener) { // TODO Auto-generated method stub } }); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); ExpressionModel model = (ExpressionModel) selection.getFirstElement(); if (model != null) { if (model.getError() != null) { valueText.setText(model.getError()); } else { if (model.getResult() != null) { valueText.setText(model.getResult()); } else { valueText.setText("null"); } } } else { valueText.setText(""); } } }); valueText = new Text(parent, SWT.MULTI); valueText.setLayoutData(new GridData(GridData.FILL_BOTH)); return viewer; }
From source file:org.bonitasoft.studio.actors.ui.wizard.page.AbstractOrganizationWizardPage.java
License:Open Source License
protected StructuredViewer createViewer(Composite parent) { Composite viewerComposite = new Composite(parent, SWT.NONE); viewerComposite.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).create()); viewerComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(1).equalWidth(true).margins(0, 0) .spacing(0, 5).create());//from w w w .j a v a 2s .c o m final Text searchBox = new Text(viewerComposite, SWT.SEARCH | SWT.ICON_SEARCH | SWT.BORDER | SWT.CANCEL); searchBox.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); searchBox.setMessage(Messages.search); final TableViewer tableViewer = new TableViewer(viewerComposite, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL); tableViewer.getTable() .setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(SWT.DEFAULT, 270).create()); tableViewer.getTable().setLinesVisible(true); tableViewer.getTable().setHeaderVisible(true); tableViewer.setContentProvider(new ArrayContentProvider()); tableViewer.addFilter(new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { return viewerSelect(element, searchQuery); } }); searchBox.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { searchQuery = searchBox.getText(); tableViewer.refresh(); } }); return tableViewer; }
From source file:org.bonitasoft.studio.businessobject.ui.dialog.IndexFieldsSelectionDialog.java
License:Open Source License
@Override protected Control createDialogArea(final Composite parent) { final Composite contents = (Composite) super.createDialogArea(parent); final Label messageLabel = createMessageArea(contents); messageLabel.setLayoutData(/*www . j av a 2 s .c o m*/ GridDataFactory.fillDefaults().grab(false, false).span(3, 1).hint(300, SWT.DEFAULT).create()); final GridLayout contentsGridLayout = (GridLayout) contents.getLayout(); contentsGridLayout.numColumns = 3; final GridData contentsGridData = (GridData) contents.getLayoutData(); contentsGridData.horizontalAlignment = SWT.FILL; contentsGridData.verticalAlignment = SWT.FILL; final Composite choiceComposite = new Composite(contents, SWT.NONE); { final GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); data.horizontalAlignment = SWT.END; choiceComposite.setLayoutData(data); final GridLayout layout = new GridLayout(); data.horizontalAlignment = SWT.FILL; layout.marginHeight = 0; layout.marginWidth = 0; layout.numColumns = 1; choiceComposite.setLayout(layout); } final Label choiceLabel = new Label(choiceComposite, SWT.NONE); choiceLabel.setText(Messages.availableAttributes); final GridData choiceLabelGridData = new GridData(); choiceLabelGridData.verticalAlignment = SWT.FILL; choiceLabelGridData.horizontalAlignment = SWT.FILL; choiceLabel.setLayoutData(choiceLabelGridData); final Table choiceTable = choiceOfValues == null ? null : new Table(choiceComposite, SWT.MULTI | SWT.BORDER); if (choiceTable != null) { final GridData choiceTableGridData = new GridData(); choiceTableGridData.widthHint = 200; choiceTableGridData.heightHint = 100; choiceTableGridData.verticalAlignment = SWT.FILL; choiceTableGridData.horizontalAlignment = SWT.FILL; choiceTableGridData.grabExcessHorizontalSpace = true; choiceTableGridData.grabExcessVerticalSpace = true; choiceTable.setLayoutData(choiceTableGridData); } final TableViewer choiceTableViewer = choiceOfValues == null ? null : new TableViewer(choiceTable); if (choiceTableViewer != null) { choiceTableViewer.setContentProvider(ArrayContentProvider.getInstance()); choiceTableViewer.setLabelProvider(labelProvider); final PatternFilter filter = new PatternFilter() { @Override protected boolean isParentMatch(final Viewer viewer, final Object element) { return viewer instanceof AbstractTreeViewer && super.isParentMatch(viewer, element); } }; choiceTableViewer.addFilter(filter); if (unique) { choiceTableViewer.addFilter(new ViewerFilter() { @Override public boolean select(final Viewer viewer, final Object parentElement, final Object element) { return !values.contains(element); } }); } choiceTableViewer.setInput(choiceOfValues); } final Composite controlButtons = new Composite(contents, SWT.NONE); final GridData controlButtonsGridData = new GridData(); controlButtonsGridData.verticalAlignment = SWT.FILL; controlButtonsGridData.horizontalAlignment = SWT.FILL; controlButtons.setLayoutData(controlButtonsGridData); final GridLayout controlsButtonGridLayout = new GridLayout(); controlButtons.setLayout(controlsButtonGridLayout); new Label(controlButtons, SWT.NONE); final Button addButton = new Button(controlButtons, SWT.PUSH); addButton.setText(Messages.add); final GridData addButtonGridData = new GridData(); addButtonGridData.verticalAlignment = SWT.FILL; addButtonGridData.horizontalAlignment = SWT.FILL; addButton.setLayoutData(addButtonGridData); final Button removeButton = new Button(controlButtons, SWT.PUSH); removeButton.setText(Messages.Remove); final GridData removeButtonGridData = new GridData(); removeButtonGridData.verticalAlignment = SWT.FILL; removeButtonGridData.horizontalAlignment = SWT.FILL; removeButton.setLayoutData(removeButtonGridData); final Label spaceLabel = new Label(controlButtons, SWT.NONE); final GridData spaceLabelGridData = new GridData(); spaceLabelGridData.verticalSpan = 2; spaceLabel.setLayoutData(spaceLabelGridData); final Button upButton = new Button(controlButtons, SWT.PUSH); upButton.setText(Messages.up); final GridData upButtonGridData = new GridData(); upButtonGridData.verticalAlignment = SWT.FILL; upButtonGridData.horizontalAlignment = SWT.FILL; upButton.setLayoutData(upButtonGridData); final Button downButton = new Button(controlButtons, SWT.PUSH); downButton.setText(Messages.down); final GridData downButtonGridData = new GridData(); downButtonGridData.verticalAlignment = SWT.FILL; downButtonGridData.horizontalAlignment = SWT.FILL; downButton.setLayoutData(downButtonGridData); final Composite featureComposite = new Composite(contents, SWT.NONE); { final GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); data.horizontalAlignment = SWT.END; featureComposite.setLayoutData(data); final GridLayout layout = new GridLayout(); data.horizontalAlignment = SWT.FILL; layout.marginHeight = 0; layout.marginWidth = 0; layout.numColumns = 1; featureComposite.setLayout(layout); } final Label selectedFieldLabel = new Label(featureComposite, SWT.NONE); selectedFieldLabel.setText(Messages.indexedAttributes); final GridData featureLabelGridData = new GridData(); featureLabelGridData.horizontalSpan = 2; featureLabelGridData.horizontalAlignment = SWT.FILL; featureLabelGridData.verticalAlignment = SWT.FILL; selectedFieldLabel.setLayoutData(featureLabelGridData); final Table selectedFieldTable = new Table(featureComposite, SWT.MULTI | SWT.BORDER); final GridData featureTableGridData = new GridData(); featureTableGridData.widthHint = 200; featureTableGridData.heightHint = 100; featureTableGridData.verticalAlignment = SWT.FILL; featureTableGridData.horizontalAlignment = SWT.FILL; featureTableGridData.grabExcessHorizontalSpace = true; featureTableGridData.grabExcessVerticalSpace = true; selectedFieldTable.setLayoutData(featureTableGridData); final TableViewer selectedFieldTableViewer = new TableViewer(selectedFieldTable); selectedFieldTableViewer.setContentProvider(contentProvider); selectedFieldTableViewer.setLabelProvider(labelProvider); selectedFieldTableViewer.setInput(values); final List<Field> children = values; if (!values.isEmpty()) { selectedFieldTableViewer.setSelection(new StructuredSelection(children.get(0))); } if (choiceTableViewer != null) { choiceTableViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(final DoubleClickEvent event) { if (addButton.isEnabled()) { addButton.notifyListeners(SWT.Selection, null); } } }); selectedFieldTableViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(final DoubleClickEvent event) { if (removeButton.isEnabled()) { removeButton.notifyListeners(SWT.Selection, null); } } }); } upButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { final IStructuredSelection selection = (IStructuredSelection) selectedFieldTableViewer .getSelection(); int minIndex = 0; for (final Iterator<?> i = selection.iterator(); i.hasNext();) { final Object value = i.next(); final int index = children.indexOf(value); Collections.swap(children, Math.max(index - 1, minIndex++), index); } selectedFieldTableViewer.refresh(); } }); downButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { final IStructuredSelection selection = (IStructuredSelection) selectedFieldTableViewer .getSelection(); int maxIndex = children.size() - 1; final List<?> objects = selection.toList(); for (final ListIterator<?> i = objects.listIterator(objects.size()); i.hasPrevious();) { final Object value = i.previous(); final int index = children.indexOf(value); Collections.swap(children, Math.min(index + 1, maxIndex--), index); } selectedFieldTableViewer.refresh(); } }); addButton.addSelectionListener(new SelectionAdapter() { // event is null when choiceTableViewer is double clicked @Override public void widgetSelected(final SelectionEvent event) { if (choiceTableViewer != null) { final IStructuredSelection selection = (IStructuredSelection) choiceTableViewer.getSelection(); for (final Iterator<?> i = selection.iterator(); i.hasNext();) { final Field value = (Field) i.next(); if (!unique || !children.contains(value)) { children.add(value); } } selectedFieldTableViewer.refresh(); selectedFieldTableViewer.setSelection(selection); choiceTableViewer.refresh(); } } }); removeButton.addSelectionListener(new SelectionAdapter() { // event is null when featureTableViewer is double clicked @Override public void widgetSelected(final SelectionEvent event) { final IStructuredSelection selection = (IStructuredSelection) selectedFieldTableViewer .getSelection(); Object firstValue = null; for (final Iterator<?> i = selection.iterator(); i.hasNext();) { final Object value = i.next(); if (firstValue == null) { firstValue = value; } children.remove(value); } if (!children.isEmpty()) { selectedFieldTableViewer.setSelection(new StructuredSelection(children.get(0))); } selectedFieldTableViewer.refresh(); if (choiceTableViewer != null) { choiceTableViewer.refresh(); choiceTableViewer.setSelection(selection); } } }); return contents; }
From source file:org.bonitasoft.studio.businessobject.ui.expression.QueryExpressionEditor.java
License:Open Source License
private void createQueryParametersTable(final Composite parent, final DataBindingContext ctx) { final Composite composite = new Composite(parent, SWT.NONE); composite.setLayoutData(GridDataFactory.fillDefaults().span(2, 1).create()); composite.setLayout(GridLayoutFactory.fillDefaults().numColumns(1).margins(0, 0).spacing(0, 2).create()); final Label parameterLabel = new Label(composite, SWT.NONE); parameterLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).create()); parameterLabel.setText(Messages.parameters); final ControlDecoration parameterDecoration = new ControlDecoration(parameterLabel, SWT.RIGHT); parameterDecoration.setShowOnlyOnFocus(false); parameterDecoration.setDescriptionText(Messages.paginationParameterHint); parameterDecoration.setImage(Pics.getImage(PicsConstants.hint)); parameterDecoration.hide();/* ww w.ja v a2s. com*/ observeQuerySingleSelection.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(final ValueChangeEvent event) { final Object newValue = event.diff.getNewValue(); if (newValue instanceof Expression) { if (List.class.getName().equals(((Expression) newValue).getReturnType())) { parameterDecoration.show(); } else { parameterDecoration.hide(); } } } }); final TableViewer parametersTableViewer = new TableViewer(composite, SWT.FULL_SELECTION | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); parametersTableViewer.getControl() .setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(300, 80).create()); parametersTableViewer.getTable().setLinesVisible(true); parametersTableViewer.getTable().setHeaderVisible(true); parametersTableViewer.setContentProvider(new ObservableListContentProvider()); final TableLayout tableLayout = new TableLayout(); tableLayout.addColumnData(new ColumnWeightData(1)); tableLayout.addColumnData(new ColumnWeightData(1)); parametersTableViewer.getTable().setLayout(tableLayout); queryParameterObserveDetailList = EMFObservables.observeDetailList(Realm.getDefault(), observeQuerySingleSelection, ExpressionPackage.Literals.EXPRESSION__REFERENCED_ELEMENTS); createNameColumn(ctx, parametersTableViewer); createValueColumn(ctx, parametersTableViewer); parametersTableViewer.setInput(queryParameterObserveDetailList); }
From source file:org.bonitasoft.studio.businessobject.ui.wizard.BusinessDataModelWizardPage.java
License:Open Source License
protected IViewerObservableValue createListOfBusinessObjects(final Composite mainComposite, final DataBindingContext ctx) { final Group group = new Group(mainComposite, SWT.NONE); group.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).create()); group.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(5, 5).spacing(5, 0).create()); group.setText(Messages.listOfBusinessObjects); final Composite buttonsComposite = new Composite(group, SWT.NONE); buttonsComposite.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).indent(0, 20).create()); buttonsComposite/*ww w .ja va2 s .c o m*/ .setLayout(GridLayoutFactory.fillDefaults().numColumns(1).margins(0, 0).spacing(0, 3).create()); final Button addButton = new Button(buttonsComposite, SWT.FLAT); addButton.setLayoutData(GridDataFactory.fillDefaults().grab(true, false) .minSize(IDialogConstants.BUTTON_WIDTH, SWT.DEFAULT).create()); addButton.setText(Messages.add); final Button deleteButton = new Button(buttonsComposite, SWT.FLAT); deleteButton.setLayoutData(GridDataFactory.fillDefaults().grab(true, false) .minSize(IDialogConstants.BUTTON_WIDTH, SWT.DEFAULT).create()); deleteButton.setText(Messages.delete); deleteButton.setEnabled(false); final TableViewer boTableViewer = new TableViewer(group, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); boTableViewer.getControl() .setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(200, SWT.DEFAULT).create()); boTableViewer.getTable().setLinesVisible(true); boTableViewer.getTable().setHeaderVisible(true); final TableLayout tableLayout = new TableLayout(); tableLayout.addColumnData(new ColumnWeightData(1)); boTableViewer.getTable().setLayout(tableLayout); boTableViewer.setContentProvider(new ObservableListContentProvider()); final IViewerObservableValue observeSingleSelection = ViewersObservables .observeSingleSelection(boTableViewer); boTableViewer.getColumnViewerEditor() .addEditorActivationListener(new ColumnViewerEditorActivationListener() { @Override public void beforeEditorDeactivated(final ColumnViewerEditorDeactivationEvent event) { } @Override public void beforeEditorActivated(final ColumnViewerEditorActivationEvent event) { } @Override public void afterEditorDeactivated(final ColumnViewerEditorDeactivationEvent event) { final ISelection selection = boTableViewer.getSelection(); if (selection != null && ((IStructuredSelection) selection).getFirstElement() != null) { businessObjectDescriptionGroup.setText(NamingUtils.getSimpleName( ((BusinessObject) ((IStructuredSelection) selection).getFirstElement()) .getQualifiedName())); boTableViewer.refresh(); } else { businessObjectDescriptionGroup.setText(Messages.selectABusinessObjectToEdit); } } @Override public void afterEditorActivated(final ColumnViewerEditorActivationEvent event) { } }); createBusinessObjectNameColumn(ctx, observeSingleSelection, boTableViewer); final UpdateValueStrategy enableStrategy = new UpdateValueStrategy(); enableStrategy.setConverter(new Converter(Object.class, Boolean.class) { @Override public Object convert(final Object fromObject) { return fromObject != null; } }); ctx.bindValue(SWTObservables.observeEnabled(deleteButton), observeSingleSelection, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), enableStrategy); final IObservableList businessObjectObserveList = PojoObservables.observeList(businessObjectModel, "businessObjects"); boTableViewer.setInput(businessObjectObserveList); addButton.addSelectionListener(new SelectionAdapter() { /* * (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(final SelectionEvent e) { addBusinessObject(boTableViewer, businessObjectObserveList); } }); deleteButton.addSelectionListener(new SelectionAdapter() { /* * (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(final SelectionEvent e) { deleteBusinessObject(boTableViewer, observeSingleSelection, businessObjectObserveList); } }); return observeSingleSelection; }
From source file:org.bonitasoft.studio.businessobject.ui.wizard.control.AttributesTabItemControl.java
License:Open Source License
private IViewerObservableValue createAttributeTableControl(final DataBindingContext ctx, final IViewerObservableValue viewerObservableValue) { final Composite buttonsComposite = new Composite(this, SWT.NONE); buttonsComposite.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).indent(0, 20).create()); buttonsComposite//from ww w . j a v a2s . com .setLayout(GridLayoutFactory.fillDefaults().numColumns(1).margins(0, 0).spacing(0, 3).create()); final Button addButton = createAddButton(ctx, viewerObservableValue, buttonsComposite); UpdateValueStrategy enableStrategy = new UpdateValueStrategy(); enableStrategy.setConverter(new Converter(Object.class, Boolean.class) { @Override public Object convert(final Object fromObject) { return fromObject != null; } }); ctx.bindValue(SWTObservables.observeEnabled(addButton), viewerObservableValue, null, enableStrategy); final Button upButton = createUpButton(viewerObservableValue, buttonsComposite); final Button downButton = createDownButton(viewerObservableValue, buttonsComposite); final Button deleteButton = createDeleteButton(buttonsComposite); final TableViewer featuresTableViewer = new TableViewer(this, SWT.FULL_SELECTION | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI); featuresTableViewer.getControl() .setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(500, 200).create()); featuresTableViewer.getTable().setEnabled(viewerObservableValue.getValue() != null); featuresTableViewer.getTable().setLinesVisible(true); featuresTableViewer.getTable().setHeaderVisible(true); featuresTableViewer.setContentProvider(new ObservableListContentProvider()); ColumnViewerToolTipSupport.enableFor(featuresTableViewer); ctx.bindValue(SWTObservables.observeEnabled(featuresTableViewer.getTable()), viewerObservableValue, null, enableStrategy); final IViewerObservableValue observeAttributeSelection = ViewersObservables .observeSingleSelection(featuresTableViewer); final TableLayout tableLayout = new TableLayout(); tableLayout.addColumnData(new ColumnWeightData(4)); tableLayout.addColumnData(new ColumnWeightData(4)); tableLayout.addColumnData(new ColumnWeightData(3)); tableLayout.addColumnData(new ColumnWeightData(3)); featuresTableViewer.getTable().setLayout(tableLayout); createFieldNameColumn(ctx, featuresTableViewer, viewerObservableValue); createFieldTypeColumn(ctx, featuresTableViewer, observeAttributeSelection); createMultipleColumn(featuresTableViewer); createMandatoryColumn(featuresTableViewer); featuresTableViewer.setInput(fieldsList); fieldsList.addListChangeListener(new IListChangeListener() { @Override public void handleListChange(final ListChangeEvent event) { final IObservableList observableList = event.getObservableList(); if (observableList != null && !observableList.isEmpty()) { featuresTableViewer.getTable().select(0); } } }); addButton.addSelectionListener(new SelectionAdapter() { /* * (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(final SelectionEvent e) { addField(viewerObservableValue, featuresTableViewer, observeAttributeSelection); } }); deleteButton.addSelectionListener(new SelectionAdapter() { /* * (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(final SelectionEvent e) { deleteField(featuresTableViewer, viewerObservableValue); } }); enableStrategy = new UpdateValueStrategy(); enableStrategy.setConverter(new Converter(Object.class, Boolean.class) { @Override public Object convert(final Object fromObject) { return fromObject != null; } }); ctx.bindValue(SWTObservables.observeEnabled(deleteButton), observeAttributeSelection, null, enableStrategy); final UpdateValueStrategy upEnableStrategy = new UpdateValueStrategy(); upEnableStrategy.setConverter(new Converter(Object.class, Boolean.class) { @Override public Object convert(final Object fromObject) { if (fromObject != null) { final List<Field> eList = getFieldList(viewerObservableValue); return eList.indexOf(fromObject) > 0; } return false; } }); ctx.bindValue(SWTObservables.observeEnabled(upButton), observeAttributeSelection, null, upEnableStrategy); final UpdateValueStrategy downEnableStrategy = new UpdateValueStrategy(); downEnableStrategy.setConverter(new Converter(Object.class, Boolean.class) { @Override public Object convert(final Object fromObject) { if (fromObject != null) { final List<Field> eList = getFieldList(viewerObservableValue); return eList.indexOf(fromObject) < eList.size() - 1 && eList.size() > 1; } return false; } }); ctx.bindValue(SWTObservables.observeEnabled(downButton), observeAttributeSelection, null, downEnableStrategy); upButton.addSelectionListener(new SelectionAdapter() { /* * (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(final SelectionEvent e) { moveUp(viewerObservableValue, observeAttributeSelection); featuresTableViewer.refresh(); } }); downButton.addSelectionListener(new SelectionAdapter() { /* * (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(final SelectionEvent e) { moveDown(viewerObservableValue, observeAttributeSelection); featuresTableViewer.refresh(); } }); viewerObservableValue.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(final ValueChangeEvent event) { final Object selectedBO = event.diff.getNewValue(); if (selectedBO instanceof BusinessObject) { final List<Field> fields = ((BusinessObject) selectedBO).getFields(); if (fields.isEmpty()) { observeAttributeSelection.setValue(null); } else { observeAttributeSelection.setValue(fields.get(0)); } } } }); return observeAttributeSelection; }
From source file:org.bonitasoft.studio.businessobject.ui.wizard.control.IndexesTabItemControl.java
License:Open Source License
protected void createControl(final DataBindingContext ctx, final IViewerObservableValue viewerObservableValue) { setLayoutData(GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.TOP).create()); setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(5, 5).create()); final Composite buttonsComposite = new Composite(this, SWT.NONE); buttonsComposite.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).indent(0, 20).create()); buttonsComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(1).spacing(0, 3).create()); final Button addButton = createAddButton(ctx, viewerObservableValue, buttonsComposite); final Button deleteButton = createDeleteButton(buttonsComposite); final TableViewer indexesTableViewer = new TableViewer(this, SWT.FULL_SELECTION | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI); indexesTableViewer.getControl()/* w w w. j a v a2 s . co m*/ .setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(400, 300).create()); indexesTableViewer.getTable().setEnabled(viewerObservableValue.getValue() != null); indexesTableViewer.getTable().setLinesVisible(true); indexesTableViewer.getTable().setHeaderVisible(true); indexesTableViewer.setContentProvider(new ObservableListContentProvider()); final TableLayout tableLayout = new TableLayout(); tableLayout.addColumnData(new ColumnWeightData(1)); tableLayout.addColumnData(new ColumnWeightData(2)); indexesTableViewer.getTable().setLayout(tableLayout); UpdateValueStrategy enableStrategy = new UpdateValueStrategy(); enableStrategy.setConverter(new Converter(Object.class, Boolean.class) { @Override public Object convert(final Object fromObject) { return fromObject != null; } }); ctx.bindValue(SWTObservables.observeEnabled(indexesTableViewer.getTable()), viewerObservableValue, null, enableStrategy); final IViewerObservableValue constaintObserveSingleSelection = ViewersObservables .observeSingleSelection(indexesTableViewer); ctx.bindValue(SWTObservables.observeEnabled(deleteButton), constaintObserveSingleSelection, null, enableStrategy); enableStrategy = new UpdateValueStrategy(); enableStrategy.setConverter(new Converter(Object.class, Boolean.class) { @Override public Object convert(final Object fromObject) { return fromObject instanceof List && !((List<?>) fromObject).isEmpty(); } }); fieldsList.addListChangeListener(new IListChangeListener() { @Override public void handleListChange(final ListChangeEvent event) { addButton.setEnabled(!event.getObservableList().isEmpty()); } }); createIndexNameColumn(ctx, indexesTableViewer, viewerObservableValue); createIndexFieldsColumn(ctx, indexesTableViewer, viewerObservableValue); final IObservableList indexesObserveDetailList = PojoObservables.observeDetailList(viewerObservableValue, "indexes", Index.class); indexesTableViewer.setInput(indexesObserveDetailList); addButton.addSelectionListener(new SelectionAdapter() { /* * (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(final SelectionEvent e) { addIndex(viewerObservableValue, indexesObserveDetailList, indexesTableViewer); } }); deleteButton.addSelectionListener(new SelectionAdapter() { /* * (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(final SelectionEvent e) { deleteIndex(indexesObserveDetailList, indexesTableViewer); } }); }