/** {@inheritDoc} */ public Map<IPreferenceGroup, Object> eventFired() { Sensitivity sensitivity = Sensitivity.fromOrd(slider.getSelection()); Map<IPreferenceGroup, Object> preferenceControlMap = new HashMap<IPreferenceGroup, Object>(); preferenceControlMap.put(PreferenceId.SamplingRate.SLIDER_ID, sensitivity); // get the actual selected divider mode button and set the specific id if (timeframeModeButton.getSelection()) { preferenceControlMap.put( PreferenceId.SamplingRate.DIVIDER_ID, PreferenceId.SamplingRate.TIMEFRAME_DIVIDER_ID); } return preferenceControlMap; }
/** Create a list of cards */ private List<CardBuilder> createCards(Context context) { ArrayList<CardBuilder> cards = new ArrayList<>(); cards.add( DEMO, new CardBuilder(context, CardBuilder.Layout.CAPTION).setText(R.string.text_card_demo)); Sensitivity sensitivity = Sensitivity.values()[mSharedPreferences.getInt("sensitivity", 2)]; cards.add( SENSITIVITY_SETTINGS, new CardBuilder(context, CardBuilder.Layout.COLUMNS) .setText( getString(R.string.text_card_sensitivity_settings) + " " + getString(sensitivity.textId)) .setIcon(R.drawable.ic_sensitivity_150)); return cards; }
/** * Converts an ordinal into a {@link Sensitivity}. * * @param i The ordinal. * @return The appropriate column. */ public static Sensitivity fromOrd(int i) { if (i < 0 || i >= Sensitivity.values().length) { throw new IndexOutOfBoundsException("Invalid ordinal"); } return Sensitivity.values()[i]; }
/** {@inheritDoc} */ public Composite createControls(Composite parent, FormToolkit toolkit) { Section section = toolkit.createSection(parent, Section.TITLE_BAR); section.setText("Sampling Rate"); section.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); Composite composite = toolkit.createComposite(section); section.setClient(composite); GridLayout layout = new GridLayout(4, false); layout.marginLeft = 10; layout.horizontalSpacing = 10; composite.setLayout(layout); GridData gridData = new GridData(SWT.MAX, SWT.DEFAULT); gridData.grabExcessHorizontalSpace = true; composite.setLayoutData(gridData); final Label sliderLabel = toolkit.createLabel(composite, "no sensitivity selected", SWT.LEFT); GridData data = new GridData(SWT.FILL, SWT.FILL, false, false); data.widthHint = sliderLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT).x; sliderLabel.setLayoutData(data); slider = new Scale(composite, SWT.HORIZONTAL); toolkit.adapt(slider, true, true); slider.setMinimum(0); slider.setMaximum(Sensitivity.values().length - 1); slider.setIncrement(1); slider.setSize(200, 10); slider.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); slider.addSelectionListener( new SelectionAdapter() { /** {@inheritDoc} */ @Override public void widgetSelected(SelectionEvent event) { Sensitivity sensitivity = Sensitivity.fromOrd(slider.getSelection()); switch (sensitivity) { case NO_SENSITIVITY: sliderLabel.setText("no sensitivity selected"); break; case VERY_FINE: sliderLabel.setText("very fine"); break; case FINE: sliderLabel.setText("fine"); break; case MEDIUM: sliderLabel.setText("medium"); break; case COARSE: sliderLabel.setText("coarse"); break; case VERY_COARSE: sliderLabel.setText("very coarse"); break; default: break; } } }); slider.setSelection(DEFAULT_SENSITIVITY.ordinal()); slider.notifyListeners(SWT.Selection, null); Label modeLabel = toolkit.createLabel(composite, "Sampling Rate Mode: ", SWT.LEFT); modeLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); timeframeModeButton = toolkit.createButton(composite, "Timeframe dividing", SWT.RADIO); timeframeModeButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); timeframeModeButton.setSelection(true); return composite; }