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

📄 datamodeladapter.java

📁 java实现浏览器等本地桌面的功能
💻 JAVA
字号:
/* * $Id: DataModelAdapter.java,v 1.3 2005/10/10 17:01:14 rbair Exp $ * * Copyright 2005 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. *  * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. *  * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */package org.jdesktop.dataset.adapter;import java.beans.PropertyChangeEvent;import java.beans.PropertyChangeListener;import java.util.ArrayList;import java.util.List;import org.jdesktop.binding.DataModel;import org.jdesktop.binding.ValueChangeEvent;import org.jdesktop.binding.ValueChangeListener;import org.jdesktop.binding.metadata.MetaData;import org.jdesktop.binding.metadata.Validator;import org.jdesktop.dataset.DataSelector;import org.jdesktop.dataset.event.DataTableListener;import org.jdesktop.dataset.event.RowChangeEvent;import org.jdesktop.dataset.event.TableChangeEvent;/** * * @author rbair */public class DataModelAdapter implements DataModel {    private DataSelector selector;    private MetaDataProviderAdapter mdp;    private List<Validator> validators = new ArrayList<Validator>();    private List<ValueChangeListener> listeners = new ArrayList<ValueChangeListener>();        /** Creates a new instance of DataModelAdapter */    public DataModelAdapter(DataSelector s) {        assert s != null;        this.selector = s;        mdp = new MetaDataProviderAdapter(selector.getDataTable());        selector.addPropertyChangeListener("rowIndices", new PropertyChangeListener() {			public void propertyChange(PropertyChangeEvent evt) {                for (String fieldName : mdp.getFieldNames()) {                    fireValueChanged(fieldName);                }			}		});        selector.getDataTable().addDataTableListener(new DataTableListener() {           public void rowChanged(RowChangeEvent evt) {           }                       public void tableChanged(TableChangeEvent evt) {//               fireModelChanged();                for (String fieldName : mdp.getFieldNames()) {                    fireValueChanged(fieldName);                }           }        });    }    public void addValidator(Validator validator) {        if (!validators.contains(validator)) {            validators.add(validator);        }    }    public void removeValidator(Validator validator) {        validators.remove(validator);    }    public Validator[] getValidators() {        return validators.toArray(new Validator[validators.size()]);    }    public void addValueChangeListener(ValueChangeListener valueChangeListener) {        if (!listeners.contains(valueChangeListener)) {            listeners.add(valueChangeListener);        }    }    public void removeValueChangeListener(ValueChangeListener valueChangeListener) {        listeners.remove(valueChangeListener);    }    public ValueChangeListener[] getValueChangeListeners() {        return listeners.toArray(new ValueChangeListener[listeners.size()]);    }    public int getFieldCount() {        return mdp.getFieldCount();    }    public String[] getFieldNames() {        return mdp.getFieldNames();    }    public MetaData[] getMetaData() {        return mdp.getMetaData();    }    public MetaData getMetaData(String dataID) {        return mdp.getMetaData(dataID);    }    public Object getValue(String fieldName) {        List<Integer> indices = selector.getRowIndices();        if (indices.size() > 0) {            return selector.getDataTable().getValue(indices.get(0), fieldName);        }        return null;    }    public void setValue(String fieldName, Object value) {        List<Integer> indices = selector.getRowIndices();        for (int index : indices) {            selector.getDataTable().setValue(index, fieldName, value);        }    }        //-----------------event handling code-----------------------	/**	 * Fires the value change event. This is called normally during the set operation	 * @param fieldName	 */	protected void fireValueChanged(String fieldName) {		ValueChangeEvent e = new ValueChangeEvent(this, fieldName);//getCachedEvent(fieldName);        for (ValueChangeListener listener : listeners) {			try {			    listener.valueChanged(e);			} catch (Exception ex) {                //TODO some real exception handling needs to occur			    ex.printStackTrace();			}		}	}	/**	 * Fires the model change event.	 *///	protected void fireModelChanged() {//		ModelChangeEvent e = new ModelChangeEvent(this);//		for (int i = 0; i < dataModelListeners.size(); i++) {//			DataModelListener dml = (DataModelListener)dataModelListeners.get(i);//			try {//				dml.modelChanged(e);//			} catch (Exception ex) {//				ex.printStackTrace();//			}//		}//		//If the row has changed, then details of this master//		//need to be updated as well. Loop through the detail model//		//and tell them to reload themselves, etc.////		notifyMasterChanged();//	}//	protected void fireModelMetaDataChanged() {//		MetaDataChangeEvent e = new MetaDataChangeEvent(this);//		for (int i = 0; i < dataModelListeners.size(); i++) {//			DataModelListener dml = (DataModelListener)dataModelListeners.get(i);//			try {//				dml.metaDataChanged(e);//			} catch (Exception ex) {//				ex.printStackTrace();//			}//		}//		//If the row has changed, then details of this master//		//need to be updated as well. Loop through the detail model//		//and tell them to reload themselves, etc.////		notifyMasterChanged();//	}	    /**     * Fires a MetaDataChangeEvent if the *set* of meta data has changed. To     * know whether the contents of a specific MetaData object have changed,     * register with that MetaData object.     *///	protected void fireMetaDataChanged() {//		MetaDataChangeEvent e = new MetaDataChangeEvent(this);//        for (DataModelListener dml : dataModelListeners) {//			try {//				dml.metaDataChanged(e);//			} catch (Exception ex) {//                //TODO some real exception handling needs to occur//				ex.printStackTrace();//			}//		}//	}    //    private final class DataSetListener implements PropertyChangeListener {//        public void propertyChange(PropertyChangeEvent evt) {//            if (evt.getPropertyName().equals("rowIndices") && evt.getSource() == s) {//                fireSelectionModelChanged(new SelectionModelEvent(DataModelImpl.this, 0, getRecordCount()));//            }//        }//    }}

⌨️ 快捷键说明

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