List of usage examples for org.eclipse.jface.viewers ComboViewer ComboViewer
public ComboViewer(Composite parent, int style)
From source file:gov.redhawk.prf.internal.ui.editor.composite.AbstractPropertyComposite.java
License:Open Source License
/** * @param propertyComposite//from w w w. j a v a 2 s . c o m * @param toolkit */ protected ComboViewer createModeViewer(final Composite parent, final FormToolkit toolkit) { // Mode this.modeLabel = toolkit.createLabel(parent, "Mode:"); this.modeLabel.setForeground(toolkit.getColors().getColor(IFormColors.TITLE)); this.modeLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.BEGINNING).create()); final ComboViewer viewer = new ComboViewer(parent, SWT.DROP_DOWN | SWT.READ_ONLY); viewer.getCombo().addListener(SWT.MouseVerticalWheel, new Listener() { @Override public void handleEvent(Event event) { // Disable Mouse Wheel Combo Box Control event.doit = false; } }); toolkit.adapt(viewer.getCombo()); viewer.getControl().setLayoutData(AbstractPropertyComposite.FACTORY.create()); viewer.setContentProvider(new ArrayContentProvider()); viewer.setLabelProvider(new LabelProvider()); viewer.setInput(AccessType.values()); assignTooltip(viewer.getControl(), HelpConstants.prf_properties_simple_mode); this.modeViewer = viewer; return this.modeViewer; }
From source file:gov.redhawk.prf.internal.ui.editor.composite.BasicSimplePropertyComposite.java
License:Open Source License
/** * @param propertyComposite// ww w . j ava 2 s .co m * @param toolkit */ protected ComboViewer createActionViewer(final Composite parent, final FormToolkit toolkit) { // Action this.actionLabel = toolkit.createLabel(parent, "Action:"); this.actionLabel.setForeground(toolkit.getColors().getColor(IFormColors.TITLE)); this.actionLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.BEGINNING).create()); final ComboViewer viewer = new ComboViewer(parent, SWT.DROP_DOWN | SWT.READ_ONLY); viewer.getCombo().addListener(SWT.MouseVerticalWheel, new Listener() { @Override public void handleEvent(Event event) { // Disable Mouse Wheel Combo Box Control event.doit = false; } }); toolkit.adapt(viewer.getCombo()); final List<Object> input = new ArrayList<Object>(); input.addAll(ActionType.VALUES); viewer.setContentProvider(new ArrayContentProvider()); viewer.setLabelProvider(new LabelProvider()); viewer.getControl().setLayoutData(BasicSimplePropertyComposite.FACTORY.create()); viewer.setInput(input); viewer.setComparator(new ViewerComparator(new Comparator<String>() { // List should be: "", Default, Everything else in alphanumeric // order @Override public int compare(final String o1, final String o2) { int retVal = 0; if (o1.equalsIgnoreCase(BasicSimplePropertyComposite.DEFAULT_ACTION)) { retVal = Integer.MIN_VALUE; } else if (o2.equalsIgnoreCase(BasicSimplePropertyComposite.DEFAULT_ACTION)) { retVal = Integer.MAX_VALUE; } else { retVal = o1.compareTo(o2); } return retVal; } })); assignTooltip(viewer.getControl(), HelpConstants.prf_properties_simple_action); this.actionViewer = viewer; return viewer; }
From source file:gov.redhawk.prf.internal.ui.editor.composite.BasicSimplePropertyComposite.java
License:Open Source License
/** * @param propertyComposite//from w ww. j av a 2s . co m * @param toolkit */ protected ComboViewer createTypeViewer(final Composite parent, final FormToolkit toolkit) { // Type final Label label = toolkit.createLabel(parent, "Type*:"); label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE)); this.typeViewer = new ComboViewer(parent, SWT.DROP_DOWN | SWT.READ_ONLY); this.typeViewer.getCombo().addListener(SWT.MouseVerticalWheel, new Listener() { @Override public void handleEvent(Event event) { // Disable Mouse Wheel Combo Box Control event.doit = false; } }); this.typeViewer.setContentProvider(new ArrayContentProvider()); this.typeViewer.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { switch ((PropertyValueType) element) { case DOUBLE: return super.getText(element) + " (64-bit)"; case FLOAT: return super.getText(element) + " (32-bit)"; case LONG: return super.getText(element) + " (32-bit)"; case LONGLONG: return super.getText(element) + " (64-bit)"; case SHORT: return super.getText(element) + " (16-bit)"; case ULONG: return super.getText(element) + " (32-bit)"; case ULONGLONG: return super.getText(element) + " (64-bit)"; case USHORT: return super.getText(element) + " (16-bit)"; case OCTET: case STRING: case OBJREF: case CHAR: case BOOLEAN: default: return super.getText(element); } } }); this.typeViewer.setInput(PropertyValueType.values()); this.typeViewer.setSorter(new ViewerSorter()); toolkit.adapt(this.typeViewer.getCombo()); this.typeViewer.getControl() .setLayoutData(GridDataFactory.fillDefaults().span(1, 1).grab(true, false).create()); assignTooltip(this.typeViewer.getControl(), HelpConstants.prf_properties_simple_type); this.typeModifier = new Combo(parent, SWT.DROP_DOWN | SWT.READ_ONLY); this.typeModifier.addListener(SWT.MouseVerticalWheel, new Listener() { @Override public void handleEvent(Event event) { // Disable Mouse Wheel Combo Box Control event.doit = false; } }); this.typeModifier.setItems(new String[] { "", "real", "complex" }); toolkit.adapt(this.typeModifier); typeModifier.setLayoutData(GridDataFactory.fillDefaults().span(1, 1).grab(false, false).create()); return this.typeViewer; }
From source file:gov.redhawk.sca.launch.ui.tabs.WaveformMainTab.java
License:Open Source License
/** * {@inheritDoc}// w ww . j a v a2 s . com */ @Override public void createControl(final Composite parent) { // create the top level composite for the dialog area final Composite composite = new Composite(parent, SWT.NONE); setControl(composite); composite.setFont(parent.getFont()); composite.setLayout(new GridLayout(2, false)); final Label domainName = new Label(composite, SWT.None); domainName.setText("Domain:"); this.domainCombo = new ComboViewer(composite, SWT.BORDER); this.domainCombo.setContentProvider(new ArrayContentProvider()); this.domainCombo.setLabelProvider(new AdapterFactoryLabelProvider(new ScaItemProviderAdapterFactory())); this.domainCombo .setInput(ScaPlugin.getDefault().getDomainManagerRegistry(parent.getDisplay()).getDomains()); this.domainCombo.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); this.domainCombo.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { final IStructuredSelection selection = (IStructuredSelection) event.getSelection(); final Object element = selection.getFirstElement(); if (element instanceof ScaDomainManager) { final ScaDomainManager domain = (ScaDomainManager) element; WaveformMainTab.this.waveformSelectionList.getViewer().setInput(domain); } else { WaveformMainTab.this.waveformSelectionList.getViewer().setInput(""); } WaveformMainTab.this.support.firePropertyChange(WaveformMainTab.DOMAIN, null, getScaDomainManager()); updateLaunchConfigurationDialog(); } }); this.waveformSelectionList = new FormFilteredTree(composite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER, new PatternFilter()); this.waveformSelectionList .setLayoutData(GridDataFactory.fillDefaults().grab(true, true).span(2, 1).create()); this.contentProvider = new InstallApplicationContentProvider(); this.contentProvider.addContentCompletionListener(new JobChangeAdapter() { @Override public void done(final IJobChangeEvent event) { WorkbenchJob job = new WorkbenchJob("Restore Selection") { @Override public IStatus runInUIThread(IProgressMonitor monitor) { if (!getControl().isDisposed()) { restorePreviousWaveformSelection(); } return Status.OK_STATUS; } }; job.schedule(); } }); this.waveformSelectionList.getViewer().setContentProvider(this.contentProvider); this.waveformSelectionList.getViewer() .setLabelProvider(new AdapterFactoryLabelProvider(new WizardSadItemProviderAdapterFactory())); this.waveformSelectionList.getViewer().setComparator(new ViewerComparator() { private Comparator<String> viewerComparator; @Override protected Comparator<String> getComparator() { if (this.viewerComparator == null) { this.viewerComparator = new Comparator<String>() { @Override public int compare(final String s1, final String s2) { return s1.compareToIgnoreCase(s2); } }; } return this.viewerComparator; } }); this.startWaveform = new Button(composite, SWT.CHECK); this.startWaveform.setText("Start the waveform after launching"); this.startWaveform.setLayoutData(GridDataFactory.fillDefaults().span(2, 1).grab(false, false).create()); this.startWaveform.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { updateLaunchConfigurationDialog(); } }); this.openEditorButton = new Button(composite, SWT.CHECK); this.openEditorButton.setText("Open editor after launch"); this.openEditorButton.setLayoutData(GridDataFactory.fillDefaults().span(2, 1).grab(false, false).create()); this.openEditorButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { updateLaunchConfigurationDialog(); } }); this.waveformSelectionList.getViewer().addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { final Object selected = ((StructuredSelection) event.getSelection()).getFirstElement(); if (selected instanceof SoftwareAssembly) { final SoftwareAssembly sad = (SoftwareAssembly) selected; WaveformMainTab.this.waveformProfile = sad.eResource().getURI().path(); } else { WaveformMainTab.this.waveformProfile = ""; } WaveformMainTab.this.support.firePropertyChange(WaveformMainTab.SAD, null, getSoftwareAssembly()); updateLaunchConfigurationDialog(); } }); }
From source file:gov.redhawk.sca.ui.ScaComponentFactory.java
License:Open Source License
/** * @since 9.0/*ww w . ja v a 2 s . com*/ */ public static Viewer createEnumPropertyViewer(final Composite parent, final int style, final ScaSimpleProperty prop) { if (prop.getDefinition() != null && prop.getDefinition().getEnumerations() != null) { final ComboViewer viewer = new ComboViewer(parent, style); CompatibilityUtil.disableComboWheelScrollSelect(viewer); viewer.setLabelProvider(new LabelProvider() { @Override public String getText(final Object element) { return ScaSimplePropertyItemProvider.getValueText(prop, element); } }); viewer.setContentProvider(new ArrayContentProvider()); final List<Object> values = new ArrayList<Object>(); for (final Enumeration e : prop.getDefinition().getEnumerations().getEnumeration()) { values.add(AnyUtils.convertString(e.getValue(), prop.getDefinition().getType().getLiteral(), prop.getDefinition().isComplex())); } viewer.setInput(values); return viewer; } return null; }
From source file:gov.redhawk.sca.waveform.controlpanel.propertyEditors.DecimalPropertyEditor.java
License:Open Source License
@Override public void renderNameValuePair(final Composite parent) { final Label label = new Label(parent, SWT.NONE); GridDataFactory.fillDefaults().grab(false, false).applyTo(label); label.setText(this.name); final Range range = this.prop.getDefinition().getRange(); //Dval not working properly on RAP if (range != null && !SWT.getPlatform().startsWith("rap")) { this.dval = new Dval(parent, SWT.BORDER); this.control = this.dval.getTextBox(); final Double min = Double.parseDouble(range.getMin()); final Double max = Double.parseDouble(range.getMax()); this.dval.applyFormat(getFormatPattern()); this.dval.setValue(this.value.doubleValue()); this.dval.setMinimum(min); this.dval.setMaximum(max); double incr = 0; if (this.value.doubleValue() > DecimalPropertyEditor.MAX_VALUE_NO_SCI_NOTATION) { incr = DecimalPropertyEditor.IBCR_0; } else {//from ww w .j a va 2 s . co m if (max - min < 1) { incr = DecimalPropertyEditor.INCR_1; } else if (max - min < DecimalPropertyEditor.MIN_1) { incr = 1; } else if (max - min < DecimalPropertyEditor.MIN_2) { incr = DecimalPropertyEditor.INCR_2; } else { incr = DecimalPropertyEditor.INCR_3; } } this.dval.setIncrement(incr); this.dval.setPageIncrement(incr * DecimalPropertyEditor.PAGE_INCR_MULTIPLIER); GridDataFactory.fillDefaults().grab(true, false).applyTo(this.dval); } else { final Enumerations values = this.prop.getDefinition().getEnumerations(); if (values == null || values.getEnumeration() == null || values.getEnumeration().size() == 0) { this.control = new Text(parent, SWT.BORDER); GridDataFactory.fillDefaults().grab(true, false).applyTo(this.control); this.form.applyPattern(getFormatPattern()); ((Text) this.control).setText(this.form.format(this.value)); } else { this.enumViewer = new ComboViewer(parent, SWT.NONE); CompatibilityUtil.disableComboWheelScrollSelect(enumViewer); GridDataFactory.fillDefaults().grab(true, false).applyTo(this.enumViewer.getControl()); this.enumViewer.setContentProvider(new EnumValuesContentProvider()); this.enumViewer.setLabelProvider(new EnumValuesLabelProvider()); this.enumViewer.setInput(this.prop.getDefinition().getEnumerations()); this.enumViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { final Enumeration sel = (Enumeration) ((StructuredSelection) event.getSelection()) .getFirstElement(); DecimalPropertyEditor.this.form.applyPattern(getFormatPattern()); try { DecimalPropertyEditor.this.value = DecimalPropertyEditor.this.form .parse(sel.getValue()); } catch (final ParseException e) { //PASS } } }); } } }
From source file:gov.redhawk.sca.waveform.controlpanel.propertyEditors.IntegerPropertyEditor.java
License:Open Source License
@Override public void renderNameValuePair(final Composite parent) { final Label label = new Label(parent, SWT.NONE); GridDataFactory.fillDefaults().grab(false, false).applyTo(label); label.setText(this.name); final Range range = this.prop.getDefinition().getRange(); //Dval not working properly on RAP if (range != null && !SWT.getPlatform().startsWith("rap")) { this.dval = new Dval(parent, SWT.BORDER); this.dval.setParseIntegerOnly(true); this.control = this.dval.getTextBox(); final Double min = Double.parseDouble(range.getMin()); final Double max = Double.parseDouble(range.getMax()); this.dval.applyFormat(getFormatPattern()); this.dval.setValue(this.value.doubleValue()); this.dval.setMinimum(min); this.dval.setMaximum(max); double incr = 0; if (this.value.doubleValue() > IntegerPropertyEditor.MAX_VALUE_NO_SCI_NOTATION) { incr = IntegerPropertyEditor.IBCR_0; } else {/* www .ja v a 2 s . com*/ if (max - min < 1) { incr = IntegerPropertyEditor.INCR_1; } else if (max - min < IntegerPropertyEditor.MIN_1) { incr = 1; } else if (max - min < IntegerPropertyEditor.MIN_2) { incr = IntegerPropertyEditor.INCR_2; } else { incr = IntegerPropertyEditor.INCR_3; } } this.dval.setIncrement(incr); this.dval.setPageIncrement(incr * IntegerPropertyEditor.PAGE_INCR_MULTIPLIER); GridDataFactory.fillDefaults().grab(true, false).applyTo(this.dval); } else { final Enumerations values = this.prop.getDefinition().getEnumerations(); if (values == null || values.getEnumeration() == null || values.getEnumeration().size() == 0) { this.control = new Text(parent, SWT.BORDER); GridDataFactory.fillDefaults().grab(true, false).applyTo(this.control); this.form.applyPattern(getFormatPattern()); ((Text) this.control).setText(this.form.format(this.value)); } else { this.enumViewer = new ComboViewer(parent, SWT.NONE); CompatibilityUtil.disableComboWheelScrollSelect(enumViewer); GridDataFactory.fillDefaults().grab(true, false).applyTo(this.enumViewer.getControl()); this.enumViewer.setContentProvider(new EnumValuesContentProvider()); this.enumViewer.setLabelProvider(new EnumValuesLabelProvider()); this.enumViewer.setInput(this.prop.getDefinition().getEnumerations()); this.enumViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { final Enumeration sel = (Enumeration) ((StructuredSelection) event.getSelection()) .getFirstElement(); IntegerPropertyEditor.this.form.applyPattern(getFormatPattern()); try { IntegerPropertyEditor.this.value = IntegerPropertyEditor.this.form .parse(sel.getValue()); } catch (final ParseException e) { //PASS } } }); } } }
From source file:gov.redhawk.ui.port.nxmblocks.BulkIONxmBlockControls.java
License:Open Source License
public void createControls(final Composite container) { container.setLayout(new GridLayout(2, false)); Label label;/*from www . j a v a 2 s .c o m*/ // === connection ID == label = new Label(container, SWT.None); label.setText("Connection ID:"); connectionIDField = new Text(container, SWT.BORDER); connectionIDField.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); connectionIDField.setToolTipText("Custom Port connection ID to use vs a generated one."); if (this.settings.getConnectionID() != null && !this.settings.getConnectionID().isEmpty()) { connectionIDField.setEditable(false); // cannot change custom connection ID after it has been set at this time connectionIDField.setEnabled(false); } // === sample rate === label = new Label(container, SWT.NONE); label.setText(BulkIONxmBlockControls.SAMPLE_RATE_FIELD_NAME + ":"); this.sampleRateField = new ComboViewer(container, SWT.BORDER); // writable this.sampleRateField.getCombo().setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); this.sampleRateField.getCombo().setToolTipText( "Custom sample rate to override value in StreamSRI. Use default or 0 to use value from StreamSRI."); this.sampleRateField.setContentProvider(ArrayContentProvider.getInstance()); // ArrayContentProvider does not store any state, therefore can re-use instances this.sampleRateField.setLabelProvider(new LabelProvider()); Object[] inputValues = ArrayUtil.copyAndPrependIfNotNull(this.settings.getSampleRate(), BulkIONxmBlockControls.VALUE_USE_DEFAULT); this.sampleRateField.setInput(inputValues); this.sampleRateField.setSelection(new StructuredSelection(inputValues[0])); // select first value (which is current value or default) /** // === pipe size == label = new Label(container, SWT.None); label.setText("Pipe Size:"); pipeSizeField = new Text(container, SWT.BORDER); pipeSizeField.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); pipeSizeField.setToolTipText("Custom pipe (buffer) size vs default."); */ // === blocking option === this.blockingField = new Button(container, SWT.CHECK); this.blockingField.setText("Blocking"); this.blockingField.setLayoutData(GridDataFactory.fillDefaults().span(2, 1).grab(true, false).create()); this.blockingField.setToolTipText( "On/checked to block pushPacket when Plot is not able to keep up; Off to drop packets in this scenario."); // === remove source from plot on end-of-stream (EOS) === this.removeOnEOSButton = new Button(container, SWT.CHECK); this.removeOnEOSButton.setText("Remove Stream from Plot on End Of Stream"); this.removeOnEOSButton.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create()); this.removeOnEOSButton.setToolTipText( "On/checked to remove streams from plot when an end-of-stream is received in pushPacket."); initDataBindings(); }
From source file:gov.redhawk.ui.port.nxmblocks.FftNxmBlockControls.java
License:Open Source License
public void createControls(@NonNull final Composite container) { container.setLayout(new GridLayout(2, false)); Label label;/*from w w w . ja v a2 s.c o m*/ // === FFT transform size === label = new Label(container, SWT.NONE); label.setText(FftNxmBlockControls.FFT_SIZE_FIELD_NAME + ":"); this.transformSizeField = new ComboViewer(container, SWT.BORDER); // writable this.transformSizeField.getCombo().setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); this.transformSizeField.getCombo().setToolTipText("Performance is best if factorable by 2, 3, 4 and 5."); this.transformSizeField.setContentProvider(ArrayContentProvider.getInstance()); // ArrayContentProvider does not store any state, therefore can re-use instances this.transformSizeField.setLabelProvider(new LabelProvider()); Object[] inputValues = ArrayUtil.copyAndPrependIfNotNull(this.settings.getTransformSize(), FftNxmBlockControls.FFT_SIZE_COMBO_VALUES); this.transformSizeField.setInput(inputValues); this.transformSizeField.setSelection(new StructuredSelection(inputValues[0])); // select first value (which is current value or default) // === percent overlap === label = new Label(container, SWT.NONE); label.setText(FftNxmBlockControls.OVERLAP_FIELD_NAME + ":"); this.overlapField = new Text(container, SWT.BORDER); this.overlapField.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); this.overlapField.setText(Integer.toString(this.settings.getOverlap())); // === num averages (NAVG=) === label = new Label(container, SWT.NONE); label.setText(FftNxmBlockControls.NUM_AVERAGES_FIELD_NAME + ":"); this.numAveragesField = new Text(container, SWT.BORDER); this.numAveragesField.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); this.numAveragesField.setText(Integer.toString(this.settings.getNumAverages())); this.numAveragesField .setToolTipText("Avoid using large value as it will cause highlighted energy to remain longer."); // === num sliding averages (/NEXP=) === label = new Label(container, SWT.NONE); label.setText(FftNxmBlockControls.SLIDING_NUM_AVERAGES_FIELD_NAME + ":"); this.slidingNumAveragesField = new Text(container, SWT.BORDER); this.slidingNumAveragesField.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); this.slidingNumAveragesField.setText(Integer.toString(this.settings.getNumExpAverages())); this.slidingNumAveragesField .setToolTipText("Avoid using large value as it will cause highlighted energy to remain longer."); // === FFT output type === label = new Label(container, SWT.NONE); label.setText("Output Type:"); this.fftType = new ComboViewer(container, SWT.READ_ONLY); fftType.getCombo().setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); fftType.setContentProvider(ArrayContentProvider.getInstance()); // ArrayContentProvider does not store any state, therefore can re-use instances fftType.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { return ((FftNxmBlockSettings.OutputType) element).getLabel(); } }); fftType.setInput(FftNxmBlockSettings.OutputType.getStandardTypes()); OutputType currentOutputType = this.settings.getOutputType(); if (currentOutputType == null) { currentOutputType = OutputType.NORMAL; settings.setOutputType(currentOutputType); } fftType.setSelection(new StructuredSelection(currentOutputType)); // === FFT Window === label = new Label(container, SWT.NONE); label.setText("Window:"); fftWindow = new ComboViewer(container, SWT.READ_ONLY); fftWindow.getCombo().setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); fftWindow.setContentProvider(ArrayContentProvider.getInstance()); // ArrayContentProvider does not store any state, therefore can re-use instances fftWindow.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { return ((FftNxmBlockSettings.WindowType) element).getLabel(); } }); fftWindow.setInput(FftNxmBlockSettings.WindowType.values()); WindowType windowType = this.settings.getWindow(); if (windowType == null) { windowType = WindowType.HANNING; // default to Hanning Window Type settings.setWindow(windowType); } fftWindow.setSelection(new StructuredSelection(windowType)); initDataBindings(); }
From source file:gov.redhawk.ui.port.nxmblocks.PlotNxmBlockControls.java
License:Open Source License
public void createControls(final Composite container) { container.setLayout(new GridLayout(2, false)); Label label;/*from ww w .ja v a 2 s . c o m*/ // === frame size === label = new Label(container, SWT.NONE); label.setText(FRAME_SIZE_FIELD_NAME + ":"); this.frameSizeField = new ComboViewer(container, SWT.BORDER); // writable this.frameSizeField.getCombo().setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); this.frameSizeField.getCombo().setToolTipText( "Custom frame size to override value in StreamSRI. Default uses value from StreamSRI."); this.frameSizeField.setContentProvider(ArrayContentProvider.getInstance()); // ArrayContentProvider does not store any state, therefore can re-use instances this.frameSizeField.setLabelProvider(new LabelProvider()); Object[] inputValues = ArrayUtil.copyAndPrependIfNotNull(this.settings.getFrameSize(), FRAME_SIZE_COMBO_VALUES); this.frameSizeField.setInput(inputValues); this.frameSizeField.setSelection(new StructuredSelection(inputValues[0])); // select first value (which is current value or default) this.frameSizeField .addSelectionChangedListener(new SelectAllTextComboTextListener(this.frameSizeField.getCombo())); // === line plot frame thinning === label = new Label(container, SWT.NONE); label.setText("&Line Plot Frame Thinning:"); this.linePlotConsumeLengthField = new Text(container, SWT.BORDER); this.linePlotConsumeLengthField.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); this.linePlotConsumeLengthField.setToolTipText("Thin line plot by displaying 1 out of every n frames. " + "Use -1 for no thinning. Leave blank to use default of " + PlotPreferences.LINE_PLOT_CONSUMELENGTH.getDefaultValue() + "."); initDataBindings(); }