public int getIndex(EnumValue enumValue) { int i= 0; for (Iterator it= fItems.iterator(); it.hasNext();) { EnumValue ev= (EnumValue) it.next(); if (ev.equals(enumValue)) return i; i++; } return -1; }
public EnumValue getValueByInteger(int intValue) { for (Iterator<EnumValue> it= fItems.iterator(); it.hasNext();) { EnumValue e= it.next(); if (e.getIntValue() == intValue) return e; } return null; }
Control[] addCombo(Composite composite, final Preference preference, final EnumeratedDomain domain, int indentation) { Label labelControl= new Label(composite, SWT.NONE); labelControl.setText(preference.getName()); GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); gd.horizontalIndent= indentation; labelControl.setLayoutData(gd); final Combo combo= new Combo(composite, SWT.DROP_DOWN | SWT.READ_ONLY); gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); combo.setLayoutData(gd); combo.setToolTipText(preference.getDescription()); for (Iterator<EnumValue> it= domain.fItems.iterator(); it.hasNext();) { EnumValue value= it.next(); combo.add(value.getLabel()); } combo.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { int index= combo.getSelectionIndex(); EnumValue value= domain.getValueByIndex(index); IStatus status= domain.validate(value); if (!status.matches(IStatus.ERROR)) fOverlayStore.setValue(preference.getKey(), value.getIntValue()); updateStatus(status); } }); fInitializers.add(fInitializerFactory.create(preference, combo, domain)); return new Control[] {labelControl, combo}; }
Preference hoverReplace= new Preference(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_HOVER_ENRICH_MODE, label, null); EnumeratedDomain hoverReplaceDomain= new EnumeratedDomain(); hoverReplaceDomain.addValue(new EnumValue(-1, TextEditorMessages.TextEditorDefaultsPreferencePage_enrichHover_disabled)); hoverReplaceDomain.addValue(new EnumValue(1, TextEditorMessages.TextEditorDefaultsPreferencePage_enrichHover_immediately)); hoverReplaceDomain.addValue(new EnumValue(0, TextEditorMessages.TextEditorDefaultsPreferencePage_enrichHover_afterDelay)); hoverReplaceDomain.addValue(new EnumValue(2, TextEditorMessages.TextEditorDefaultsPreferencePage_enrichHover_onClick)); addCombo(appearanceComposite, hoverReplace, hoverReplaceDomain, 0);
spinner.setLayoutData(gd); spinner.setToolTipText(preference.getDescription()); spinner.setMinimum(domain.getMinimumValue().getIntValue()); spinner.setMaximum(domain.getMaximumValue().getIntValue()); spinner.setIncrement(1); spinner.setPageIncrement(4);
spinner.setLayoutData(gd); spinner.setToolTipText(preference.getDescription()); spinner.setMinimum(domain.getMinimumValue().getIntValue()); spinner.setMaximum(domain.getMaximumValue().getIntValue()); spinner.setIncrement(1); spinner.setPageIncrement(4);
Control[] addCombo(Composite composite, final Preference preference, final EnumeratedDomain domain, int indentation) { Label labelControl= new Label(composite, SWT.NONE); labelControl.setText(preference.getName()); GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); gd.horizontalIndent= indentation; labelControl.setLayoutData(gd); final Combo combo= new Combo(composite, SWT.DROP_DOWN | SWT.READ_ONLY); gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); combo.setLayoutData(gd); combo.setToolTipText(preference.getDescription()); for (Iterator it= domain.fItems.iterator(); it.hasNext();) { EnumValue value= (EnumValue) it.next(); combo.add(value.getLabel()); } combo.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { int index= combo.getSelectionIndex(); EnumValue value= domain.getValueByIndex(index); IStatus status= domain.validate(value); if (!status.matches(IStatus.ERROR)) fOverlayStore.setValue(preference.getKey(), value.getIntValue()); updateStatus(status); } }); fInitializers.add(fInitializerFactory.create(preference, combo, domain)); return new Control[] {labelControl, combo}; }
@Override public IStatus validate(Object value) { StatusInfo status= new StatusInfo(); if (value instanceof String && ((String)value).length() == 0) { status.setError(TextEditorMessages.TextEditorPreferencePage_emptyInput); return status; } try { EnumValue e= parseEnumValue(value); if (!fValueSet.contains(e)) status.setError(NLSUtility.format(TextEditorMessages.TextEditorPreferencePage_invalidRange, new String[] {getValueByIndex(0).getLabel(), getValueByIndex(fItems.size() - 1).getLabel()})); } catch (NumberFormatException e) { status.setError(NLSUtility.format(TextEditorMessages.TextEditorPreferencePage_invalidInput, String.valueOf(value))); } return status; }
public void addValue(int val) { addValue(new EnumValue(val)); }
public void addValue(int val) { addValue(new EnumValue(val)); }
@Override public void widgetSelected(SelectionEvent e) { int index= combo.getSelectionIndex(); EnumValue value= domain.getValueByIndex(index); IStatus status= domain.validate(value); if (!status.matches(IStatus.ERROR)) fOverlayStore.setValue(preference.getKey(), value.getIntValue()); updateStatus(status); } });
@Override public final int hashCode() { return getIntValue(); } @Override
public IStatus validate(Object value) { StatusInfo status= new StatusInfo(); if (value instanceof String && ((String)value).length() == 0) { status.setError(TextEditorMessages.TextEditorPreferencePage_emptyInput); return status; } try { EnumValue e= parseEnumValue(value); if (!fValueSet.contains(e)) status.setError(NLSUtility.format(TextEditorMessages.TextEditorPreferencePage_invalidRange, new String[] {getValueByIndex(0).getLabel(), getValueByIndex(fItems.size() - 1).getLabel()})); } catch (NumberFormatException e) { status.setError(NLSUtility.format(TextEditorMessages.TextEditorPreferencePage_invalidInput, String.valueOf(value))); } return status; }
public final int hashCode() { return getIntValue(); } public boolean equals(Object obj) {
@Override public boolean equals(Object obj) { if (obj instanceof EnumValue) { return ((EnumValue) obj).getIntValue() == fValue; } return false; } }
public EnumValue getValueByInteger(int intValue) { for (Iterator it= fItems.iterator(); it.hasNext();) { EnumValue e= (EnumValue) it.next(); if (e.getIntValue() == intValue) return e; } return null; }
@Override public void widgetSelected(SelectionEvent e) { int index= spinner.getSelection(); EnumValue value= domain.getValueByInteger(index); IStatus status= domain.validate(value); if (!status.matches(IStatus.ERROR)) fOverlayStore.setValue(preference.getKey(), value.getIntValue()); updateStatus(status); } });
public int getIndex(EnumValue enumValue) { int i= 0; for (Iterator<EnumValue> it= fItems.iterator(); it.hasNext();) { EnumValue ev= it.next(); if (ev.equals(enumValue)) return i; i++; } return -1; }
public void widgetSelected(SelectionEvent e) { int index= spinner.getSelection(); EnumValue value= domain.getValueByInteger(index); IStatus status= domain.validate(value); if (!status.matches(IStatus.ERROR)) fOverlayStore.setValue(preference.getKey(), value.getIntValue()); updateStatus(status); } });
public boolean equals(Object obj) { if (obj instanceof EnumValue) { return ((EnumValue) obj).getIntValue() == fValue; } return false; } }