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

📄 formview.java

📁 JAVA 所有包
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	if (name == null) {	    return; 	}	String value = null;	HTML.Tag tag = (HTML.Tag)elem.getAttributes().getAttribute                                  (StyleConstants.NameAttribute);	if (tag == HTML.Tag.INPUT) {	    value = getInputElementData(attr);	} else if (tag ==  HTML.Tag.TEXTAREA) {	    value = getTextAreaData(attr);	} else if (tag == HTML.Tag.SELECT) {	    loadSelectData(attr, buffer);	}		if (name != null && value != null) {	    appendBuffer(buffer, name, value);	}    }    /**     * Returns the data associated with an &lt;INPUT&gt; form     * element.  The value of "type" attributes is     * used to determine the type of the model associated     * with the element and then the relevant data is     * extracted.     */    private String getInputElementData(AttributeSet attr) {		Object model = attr.getAttribute(StyleConstants.ModelAttribute);	String type = (String) attr.getAttribute(HTML.Attribute.TYPE);	String value = null;		if (type.equals("text") || type.equals("password")) {	    Document doc = (Document)model;	    try {		value = doc.getText(0, doc.getLength());	    } catch (BadLocationException e) {		value = null;	    }	} else if (type.equals("submit") || type.equals("hidden")) {	    value = (String) attr.getAttribute(HTML.Attribute.VALUE);	    if (value == null) {		value = "";	    }	} else if (type.equals("radio") || type.equals("checkbox")) {	    ButtonModel m = (ButtonModel)model;	    if (m.isSelected()) {		value = (String) attr.getAttribute(HTML.Attribute.VALUE);		if (value == null) {		    value = "on";		}	    }	} else if (type.equals("file")) {	    Document doc = (Document)model;            String path;	    try {		path = doc.getText(0, doc.getLength());	    } catch (BadLocationException e) {		path = null;	    }            if (path != null && path.length() > 0) {                value = path;/*                try {                    Reader reader = new BufferedReader(new FileReader(path));                    StringBuffer buffer = new StringBuffer();                    char[] cBuff = new char[1024];                    int read;                    try {                        while ((read = reader.read(cBuff)) != -1) {                            buffer.append(cBuff, 0, read);                        }                    } catch (IOException ioe) {                        buffer = null;                    }                    try {                        reader.close();                    } catch (IOException ioe) {}                    if (buffer != null) {                        value = buffer.toString();                    }                } catch (IOException ioe) {}*/            }        }	return value;    }    /**     * Returns the data associated with the &lt;TEXTAREA&gt; form     * element.  This is done by getting the text stored in the     * Document model.     */    private String getTextAreaData(AttributeSet attr) {	Document doc = (Document)attr.getAttribute(StyleConstants.ModelAttribute);	try {	    return doc.getText(0, doc.getLength());	} catch (BadLocationException e) {	    return null;	}    }    /**     * Loads the buffer with the data associated with the Select     * form element.  Basically, only items that are selected     * and have their name attribute set are added to the buffer.     */    private void loadSelectData(AttributeSet attr, StringBuffer buffer) {	String name = (String)attr.getAttribute(HTML.Attribute.NAME);	if (name == null) {	    return;	}	Object m = attr.getAttribute(StyleConstants.ModelAttribute);	if (m instanceof OptionListModel) {	    OptionListModel model = (OptionListModel)m;	    	    for (int i = 0; i < model.getSize(); i++) {		if (model.isSelectedIndex(i)) {		    Option option = (Option) model.getElementAt(i);		    appendBuffer(buffer, name, option.getValue());		}	    }	} else if (m instanceof ComboBoxModel) {	    ComboBoxModel model = (ComboBoxModel)m;	    Option option = (Option)model.getSelectedItem();	    if (option != null) {		appendBuffer(buffer, name, option.getValue());	    }	}    }    /**     * Appends name / value pairs into the      * buffer.  Both names and values are encoded using the      * URLEncoder.encode() method before being added to the     * buffer.     */    private void appendBuffer(StringBuffer buffer, String name, String value) {	if (buffer.length() > 0) {	    buffer.append('&');	}	String encodedName = URLEncoder.encode(name);	buffer.append(encodedName);	buffer.append('=');	String encodedValue = URLEncoder.encode(value);	buffer.append(encodedValue);    }    /**     * Returns true if the Element <code>elem</code> represents a control.     */    private boolean isControl(Element elem) {        return elem.isLeaf();    }    /**     * Iterates over the element hierarchy to determine if     * the element parameter, which is assumed to be an     * &lt;INPUT&gt; element of type password or text, is the last     * one of either kind, in the form to which it belongs.     */    boolean isLastTextOrPasswordField() {        Element parent = getFormElement();        Element elem = getElement();        if (parent != null) {            ElementIterator it = new ElementIterator(parent);            Element next;            boolean found = false;            while ((next = it.next()) != null) {                if (next == elem) {                    found = true;                }                else if (found && isControl(next)) {                    AttributeSet elemAttr = next.getAttributes();                    if (HTMLDocument.matchNameAttribute                                     (elemAttr, HTML.Tag.INPUT)) {                        String type = (String)elemAttr.getAttribute                                                  (HTML.Attribute.TYPE);                        if ("text".equals(type) || "password".equals(type)) {                            return false;                        }                    }                }            }        }        return true;    }    /**     * Resets the form     * to its initial state by reinitializing the models     * associated with each form element to their initial     * values.     *     * param elem the element that triggered the reset     */    void resetForm() {        Element parent = getFormElement();        if (parent != null) {            ElementIterator it = new ElementIterator(parent);            Element next;            while((next = it.next()) != null) {                if (isControl(next)) {                    AttributeSet elemAttr = next.getAttributes();                    Object m = elemAttr.getAttribute(StyleConstants.                                                     ModelAttribute);                    if (m instanceof TextAreaDocument) {                        TextAreaDocument doc = (TextAreaDocument)m;                        doc.reset();                    } else if (m instanceof PlainDocument) {                        try {                            PlainDocument doc =  (PlainDocument)m;                            doc.remove(0, doc.getLength());                            if (HTMLDocument.matchNameAttribute                                             (elemAttr, HTML.Tag.INPUT)) {                                String value = (String)elemAttr.                                           getAttribute(HTML.Attribute.VALUE);                                if (value != null) {                                    doc.insertString(0, value, null);                                }                            }                        } catch (BadLocationException e) {                        }                    } else if (m instanceof OptionListModel) {                        OptionListModel model = (OptionListModel) m;                        int size = model.getSize();                        for (int i = 0; i < size; i++) {                            model.removeIndexInterval(i, i);                        }                        BitSet selectionRange = model.getInitialSelection();                        for (int i = 0; i < selectionRange.size(); i++) {                            if (selectionRange.get(i)) {                                model.addSelectionInterval(i, i);                            }                        }                    } else if (m instanceof OptionComboBoxModel) {                        OptionComboBoxModel model = (OptionComboBoxModel) m;                        Option option = model.getInitialSelection();                        if (option != null) {                            model.setSelectedItem(option);                        }                    } else if (m instanceof JToggleButton.ToggleButtonModel) {                        boolean checked = ((String)elemAttr.getAttribute                                           (HTML.Attribute.CHECKED) != null);                        JToggleButton.ToggleButtonModel model =                                        (JToggleButton.ToggleButtonModel)m;                        model.setSelected(checked);                    }                }            }        }    }    /**     * BrowseFileAction is used for input type == file. When the user     * clicks the button a JFileChooser is brought up allowing the user     * to select a file in the file system. The resulting path to the selected     * file is set in the text field (actually an instance of Document).     */    private class BrowseFileAction implements ActionListener {        private AttributeSet attrs;        private Document model;        BrowseFileAction(AttributeSet attrs, Document model) {            this.attrs = attrs;            this.model = model;        }        public void actionPerformed(ActionEvent ae) {            // PENDING: When mime support is added to JFileChooser use the            // accept value of attrs.            JFileChooser fc = new JFileChooser();            fc.setMultiSelectionEnabled(false);            if (fc.showOpenDialog(getContainer()) ==                  JFileChooser.APPROVE_OPTION) {                File selected = fc.getSelectedFile();                if (selected != null) {                    try {                        if (model.getLength() > 0) {                            model.remove(0, model.getLength());                        }                        model.insertString(0, selected.getPath(), null);                    } catch (BadLocationException ble) {}                }            }        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -