⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stringfieldeditor.java

📁 jfa2ce 源码帮助开发人员更好的理解运用
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        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 + -