📄 stringfieldeditor.java
字号:
if (textField != null) { String value = getPreferenceStore().getDefaultString( getPreferenceName()); textField.setText(value); } valueChanged(); } /* (non-Javadoc) * Method declared on FieldEditor. */ protected void doStore() { getPreferenceStore().setValue(getPreferenceName(), textField.getText()); } /** * Returns the error message that will be displayed when and if * an error occurs. * * @return the error message, or <code>null</code> if none */ public String getErrorMessage() { return errorMessage; } /* (non-Javadoc) * Method declared on FieldEditor. */ public int getNumberOfControls() { return 2; } /** * Returns the field editor's value. * * @return the current value */ public String getStringValue() { if (textField != null) { return textField.getText(); } return getPreferenceStore().getString(getPreferenceName()); } /** * Returns this field editor's text control. * * @return the text control, or <code>null</code> if no * text field is created yet */ protected Text getTextControl() { return textField; } /** * Returns this field editor's text control. * <p> * The control is created if it does not yet exist * </p> * * @param parent the parent * @return the text control */ public Text getTextControl(Composite parent) { if (textField == null) { textField = new Text(parent, SWT.SINGLE | SWT.BORDER); textField.setFont(parent.getFont()); switch (validateStrategy) { case VALIDATE_ON_KEY_STROKE: textField.addKeyListener(new KeyAdapter() { /* (non-Javadoc) * @see org.eclipse.swt.events.KeyAdapter#keyReleased(org.eclipse.swt.events.KeyEvent) */ public void keyReleased(KeyEvent e) { valueChanged(); } }); break; case VALIDATE_ON_FOCUS_LOST: textField.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { clearErrorMessage(); } }); textField.addFocusListener(new FocusAdapter() { public void focusGained(FocusEvent e) { refreshValidState(); } public void focusLost(FocusEvent e) { valueChanged(); clearErrorMessage(); } }); break; default: Assert.isTrue(false, "Unknown validate strategy");//$NON-NLS-1$ } textField.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent event) { textField = null; } }); if (textLimit > 0) {//Only set limits above 0 - see SWT spec textField.setTextLimit(textLimit); } } else { checkParent(textField, parent); } return textField; } /** * Returns whether an empty string is a valid value. * * @return <code>true</code> if an empty string is a valid value, and * <code>false</code> if an empty string is invalid * @see #setEmptyStringAllowed */ public boolean isEmptyStringAllowed() { return emptyStringAllowed; } /* (non-Javadoc) * Method declared on FieldEditor. */ public boolean isValid() { return isValid; } /* (non-Javadoc) * Method declared on FieldEditor. */ protected void refreshValidState() { isValid = checkState(); } /** * Sets whether the empty string is a valid value or not. * * @param b <code>true</code> if the empty string is allowed, * and <code>false</code> if it is considered invalid */ public void setEmptyStringAllowed(boolean b) { emptyStringAllowed = b; } /** * Sets the error message that will be displayed when and if * an error occurs. * * @param message the error message */ public void setErrorMessage(String message) { errorMessage = message; } /* (non-Javadoc) * Method declared on FieldEditor. */ public void setFocus() { if (textField != null) { textField.setFocus(); } } /** * Sets this field editor's value. * * @param value the new value, or <code>null</code> meaning the empty string */ public void setStringValue(String value) { if (textField != null) { if (value == null) { value = "";//$NON-NLS-1$ } oldValue = textField.getText(); if (!oldValue.equals(value)) { textField.setText(value); valueChanged(); } } } /** * Sets this text field's text limit. * * @param limit the limit on the number of character in the text * input field, or <code>UNLIMITED</code> for no limit */ public void setTextLimit(int limit) { textLimit = limit; if (textField != null) { textField.setTextLimit(limit); } } /** * Sets the strategy for validating the text. * <p> * Calling this method has no effect after <code>createPartControl</code> * is called. Thus this method is really only useful for subclasses to call * in their constructor. However, it has public visibility for backward * compatibility. * </p> * * @param value either <code>VALIDATE_ON_KEY_STROKE</code> to perform * on the fly checking (the default), or <code>VALIDATE_ON_FOCUS_LOST</code> to * perform validation only after the text has been typed in */ public void setValidateStrategy(int value) { Assert.isTrue(value == VALIDATE_ON_FOCUS_LOST || value == VALIDATE_ON_KEY_STROKE); validateStrategy = value; } /** * Shows the error message set via <code>setErrorMessage</code>. */ public void showErrorMessage() { showErrorMessage(errorMessage); } /** * Informs this field editor's listener, if it has one, about a change * to the value (<code>VALUE</code> property) provided that the old and * new values are different. * <p> * This hook is <em>not</em> called when the text is initialized * (or reset to the default value) from the preference store. * </p> */ protected void valueChanged() { setPresentsDefaultValue(false); boolean oldState = isValid; refreshValidState(); if (isValid != oldState) { fireStateChanged(IS_VALID, oldState, isValid); } String newValue = textField.getText(); if (!newValue.equals(oldValue)) { fireValueChanged(VALUE, oldValue, newValue); oldValue = newValue; } } /* * @see FieldEditor.setEnabled(boolean,Composite). */ public void setEnabled(boolean enabled, Composite parent) { super.setEnabled(enabled, parent); getTextControl(parent).setEnabled(enabled); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -