亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tableview.java

?? java jdk 1.4的源碼
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
		    childAllocation(i, alloc);		    return getView(i);		}	    }	    return null;	}        protected StyleSheet getStyleSheet() {	    HTMLDocument doc = (HTMLDocument) getDocument();	    return doc.getStyleSheet();	}	/**	 * This is called by a child to indicate its 	 * preferred span has changed.  This is implemented to	 * execute the superclass behavior and well as try to	 * determine if a row with a multi-row cell hangs across	 * this row.  If a multi-row cell covers this row it also	 * needs to propagate a preferenceChanged so that it will	 * recalculate the multi-row cell.	 *	 * @param child the child view	 * @param width true if the width preference should change	 * @param height true if the height preference should change	 */        public void preferenceChanged(View child, boolean width, boolean height) {	    super.preferenceChanged(child, width, height);	    if (TableView.this.multiRowCells && height) {		for (int i = rowIndex  - 1; i >= 0; i--) {		    RowView rv = TableView.this.getRow(i);		    if (rv.multiRowCells) {			rv.preferenceChanged(null, false, true);			break;		    }		}	    }	}        // The major axis requirements for a row are dictated by the column        // requirements. These methods use the value calculated by        // TableView.        protected SizeRequirements calculateMajorAxisRequirements(int axis, SizeRequirements r) {            SizeRequirements req = new SizeRequirements();            req.minimum = totalColumnRequirements.minimum;            req.maximum = totalColumnRequirements.maximum;            req.preferred = totalColumnRequirements.preferred;            req.alignment = 0f;            return req;        }        public float getMinimumSpan(int axis) {            float value;            if (axis == View.X_AXIS) {                value = totalColumnRequirements.minimum + getLeftInset() +                        getRightInset();            }            else {                value = super.getMinimumSpan(axis);            }            return value;        }        public float getMaximumSpan(int axis) {            float value;            if (axis == View.X_AXIS) {                // We're flexible.                value = (float)Integer.MAX_VALUE;            }            else {                value = super.getMaximumSpan(axis);            }            return value;        }        public float getPreferredSpan(int axis) {            float value;            if (axis == View.X_AXIS) {                value = totalColumnRequirements.preferred + getLeftInset() +                        getRightInset();            }            else {                value = super.getPreferredSpan(axis);            }            return value;        }	public void changedUpdate(DocumentEvent e, Shape a, ViewFactory f) {	    super.changedUpdate(e, a, f);	    int pos = e.getOffset();	    if (pos <= getStartOffset() && (pos + e.getLength()) >=		getEndOffset()) {		RowView.this.setPropertiesFromAttributes();	    }	}		/**	 * Renders using the given rendering surface and area on that	 * surface.  This is implemented to delegate to the css box	 * painter to paint the border and background prior to the 	 * interior.	 *	 * @param g the rendering surface to use	 * @param allocation the allocated region to render into	 * @see View#paint	 */	public void paint(Graphics g, Shape allocation) {	    Rectangle a = (Rectangle) allocation;	    painter.paint(g, a.x, a.y, a.width, a.height, this);	    super.paint(g, a);	}	/**	 * Change the child views.  This is implemented to	 * provide the superclass behavior and invalidate the	 * grid so that rows and columns will be recalculated.	 */        public void replace(int offset, int length, View[] views) {	    super.replace(offset, length, views);	    invalidateGrid();	}	/**	 * Calculate the height requirements of the table row.  The	 * requirements of multi-row cells are not considered for this	 * calculation.  The table itself will check and adjust the row	 * requirements for all the rows that have multi-row cells spanning	 * them.  This method updates the multi-row flag that indicates that	 * this row and rows below need additional consideration.	 */        protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r) {//	    return super.calculateMinorAxisRequirements(axis, r);	    long min = 0;	    long pref = 0;	    long max = 0;	    multiRowCells = false;	    int n = getViewCount();	    for (int i = 0; i < n; i++) {		View v = getView(i);		if (getRowsOccupied(v) > 1) {		    multiRowCells = true;		    max = Math.max((int) v.getMaximumSpan(axis), max);		} else {		    min = Math.max((int) v.getMinimumSpan(axis), min);		    pref = Math.max((int) v.getPreferredSpan(axis), pref);		    max = Math.max((int) v.getMaximumSpan(axis), max);		}	    }	    if (r == null) {		r = new SizeRequirements();		r.alignment = 0.5f;	    }	    r.preferred = (int) pref;	    r.minimum = (int) min;	    r.maximum = (int) max;	    return r;	}	/**	 * Perform layout for the major axis of the box (i.e. the	 * axis that it represents).  The results of the layout should	 * be placed in the given arrays which represent the allocations	 * to the children along the major axis.  	 * <p>	 * This is re-implemented to give each child the span of the column 	 * width for the table, and to give cells that span multiple columns 	 * the multi-column span.	 *	 * @param targetSpan the total span given to the view, which	 *  whould be used to layout the children	 * @param axis the axis being layed out	 * @param offsets the offsets from the origin of the view for	 *  each of the child views; this is a return value and is	 *  filled in by the implementation of this method	 * @param spans the span of each child view; this is a return	 *  value and is filled in by the implementation of this method	 * @return the offset and span for each child view in the	 *  offsets and spans parameters	 */        protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans) {	    int col = 0;	    int ncells = getViewCount();	    for (int cell = 0; cell < ncells; cell++, col++) {		View cv = getView(cell);		for (; isFilled(col); col++); // advance to a free column		int colSpan = getColumnsOccupied(cv);		spans[cell] = columnSpans[col];		offsets[cell] = columnOffsets[col];		if (colSpan > 1) {		    int n = columnSpans.length;		    for (int j = 1; j < colSpan; j++) {			// Because the table may be only partially formed, some			// of the columns may not yet exist.  Therefore we check			// the bounds.			if ((col+j) < n) {			    spans[cell] += columnSpans[col+j];			}		    }		    col += colSpan - 1;		}	    }	}	/**	 * Perform layout for the minor axis of the box (i.e. the	 * axis orthoginal to the axis that it represents).  The results 	 * of the layout should be placed in the given arrays which represent 	 * the allocations to the children along the minor axis.  This 	 * is called by the superclass whenever the layout needs to be 	 * updated along the minor axis.	 * <p>	 * This is implemented to delegate to the superclass, then adjust	 * the span for any cell that spans multiple rows.	 *	 * @param targetSpan the total span given to the view, which	 *  whould be used to layout the children	 * @param axis the axis being layed out	 * @param offsets the offsets from the origin of the view for	 *  each of the child views; this is a return value and is	 *  filled in by the implementation of this method	 * @param spans the span of each child view; this is a return	 *  value and is filled in by the implementation of this method	 * @return the offset and span for each child view in the	 *  offsets and spans parameters	 */        protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets, int[] spans) {	    super.layoutMinorAxis(targetSpan, axis, offsets, spans);	    int col = 0;	    int ncells = getViewCount();	    for (int cell = 0; cell < ncells; cell++, col++) {		View cv = getView(cell);		for (; isFilled(col); col++); // advance to a free column		int colSpan = getColumnsOccupied(cv);		int rowSpan = getRowsOccupied(cv);		if (rowSpan > 1) {		    		    int row0 = rowIndex;		    int row1 = Math.min(rowIndex + rowSpan - 1, getRowCount()-1);		    spans[cell] = getMultiRowSpan(row0, row1);		}		if (colSpan > 1) {		    col += colSpan - 1;		}	    }	}	/**	 * Determines the resizability of the view along the	 * given axis.  A value of 0 or less is not resizable.	 *	 * @param axis may be either View.X_AXIS or View.Y_AXIS	 * @return the resize weight	 * @exception IllegalArgumentException for an invalid axis	 */        public int getResizeWeight(int axis) {	    return 1;	}	/**	 * Fetches the child view that represents the given position in	 * the model.  This is implemented to walk through the children	 * looking for a range that contains the given position.  In this	 * view the children do not necessarily have a one to one mapping 	 * with the child elements.	 *	 * @param pos  the search position >= 0	 * @param a  the allocation to the table on entry, and the	 *   allocation of the view containing the position on exit	 * @return  the view representing the given position, or 	 *   null if there isn't one	 */        protected View getViewAtPosition(int pos, Rectangle a) {	    int n = getViewCount();	    for (int i = 0; i < n; i++) {		View v = getView(i);		int p0 = v.getStartOffset();		int p1 = v.getEndOffset();		if ((pos >= p0) && (pos < p1)) {		    // it's in this view.		    if (a != null) {			childAllocation(i, a);		    }		    return v;		}	    }	    if (pos == getEndOffset()) {		View v = getView(n - 1);		if (a != null) {		    this.childAllocation(n - 1, a);		}		return v;	    }	    return null;	}	/**	 * Update any cached values that come from attributes.	 */	void setPropertiesFromAttributes() {	    StyleSheet sheet = getStyleSheet();	    attr = sheet.getViewAttributes(this);	    painter = sheet.getBoxPainter(attr);	}	private StyleSheet.BoxPainter painter;        private AttributeSet attr;	/** columns filled by multi-column or multi-row cells */	BitSet fillColumns;	/** 	 * The row index within the overall grid 	 */	int rowIndex;	/**	 * The view index (for row index to view index conversion).	 * This is set by the updateGrid method.	 */	int viewIndex;	/**	 * Does this table row have cells that span multiple rows?	 */	boolean multiRowCells;    }    /**     * Default view of an html table cell.  This needs to be moved     * somewhere else.     */    class CellView extends BlockView {	/**	 * Constructs a TableCell for the given element.	 *	 * @param elem the element that this view is responsible for	 */        public CellView(Element elem) {	    super(elem, Y_AXIS);	}	/**	 * Perform layout for the major axis of the box (i.e. the	 * axis that it represents).  The results of the layout should	 * be placed in the given arrays which represent the allocations	 * to the children along the major axis.  This is called by the	 * superclass to recalculate the positions of the child views	 * when the layout might have changed.	 * <p>	 * This is implemented to delegate to the superclass to	 * tile the children.  If the target span is greater than	 * was needed, the offsets are adjusted to align the children	 * (i.e. position according to the html valign attribute).	 *	 * @param targetSpan the total span given to the view, which	 *  whould be used to layout the children	 * @param axis the axis being layed out	 * @param offsets the offsets from the origin of the view for	 *  each of the child views; this is a return value and is	 *  filled in by the implementation of this method	 * @param spans the span of each child view; this is a return	 *  value and is filled in by the implementation of this method	 * @return the offset and span for each child view in the	 *  offsets and spans parameters	 */        protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans) {	    super.layoutMajorAxis(targetSpan, axis, offsets, spans);	    // calculate usage	    int used = 0;	    int n = spans.length;	    for (int i = 0; i < n; i++) {		used += spans[i];	    }	    // calculate adjustments	    int adjust = 0;	    if (used < targetSpan) {		// PENDING(prinz) change to use the css alignment.		String valign = (String) getElement().getAttributes().getAttribute(		    HTML.Attribute.VALIGN);		if (valign == null) {		    AttributeSet rowAttr = getElement().getParentElement().getAttributes();		    valign = (String) rowAttr.getAttribute(HTML.Attribute.VALIGN);		}		if ((valign == null) || valign.equals("middle")) {		    adjust = (targetSpan - used) / 2;		} else if (valign.equals("bottom")) {		    adjust = targetSpan - used;		}	    }	    // make adjustments.	    if (adjust != 0) {		for (int i = 0; i < n; i++) {		    offsets[i] += adjust;		}	    }	}	/**	 * Calculate the requirements needed along the major axis.	 * This is called by the superclass whenever the requirements 	 * need to be updated (i.e. a preferenceChanged was messaged 	 * through this view).  	 * <p>	 * This is implemented to delegate to the superclass, but	 * indicate the maximum size is very large (i.e. the cell 	 * is willing to expend to occupy the full height of the row).	 * 	 * @param axis the axis being layed out.	 * @param r the requirements to fill in.  If null, a new one	 *  should be allocated.	 */        protected SizeRequirements calculateMajorAxisRequirements(int axis, 								  SizeRequirements r) {	    SizeRequirements req = super.calculateMajorAxisRequirements(axis, r);	    req.maximum = Integer.MAX_VALUE;	    return req;	}    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩激情一区二区三区| 精品国产一区二区亚洲人成毛片 | 欧美一级高清片在线观看| 欧美精品一区二区三区四区| 一区二区三区不卡视频| 国产精品亚洲专一区二区三区| 欧美日韩一区精品| 国产精品毛片大码女人| 久久99久久99小草精品免视看| 日本精品视频一区二区| 中文av一区二区| 久久激情五月婷婷| 欧美色图一区二区三区| 日韩伦理电影网| 成人网在线播放| 2021中文字幕一区亚洲| 日本女优在线视频一区二区| 色偷偷久久人人79超碰人人澡| 国产欧美精品一区二区色综合| 欧美aⅴ一区二区三区视频| 99久久免费国产| 国产亚洲欧洲997久久综合| 五月综合激情婷婷六月色窝| 99久久婷婷国产综合精品| 日韩免费在线观看| 亚洲成人在线免费| 97久久人人超碰| 久久综合网色—综合色88| 亚洲成人av一区二区三区| 99久久精品国产一区| 久久综合狠狠综合| 日韩电影免费一区| 处破女av一区二区| 欧美一区二区三区四区视频| 一区二区视频在线| 99天天综合性| 亚洲欧洲在线观看av| 国产精品亚洲一区二区三区在线| 91精品国产综合久久久蜜臀粉嫩| 艳妇臀荡乳欲伦亚洲一区| 99国产精品久久久久久久久久 | 亚洲欧美一区二区视频| 日韩不卡一二三区| 欧洲精品在线观看| 亚洲色欲色欲www| 99久久精品免费| 亚洲欧洲精品一区二区三区不卡| 国产成人免费9x9x人网站视频| 日韩欧美一区二区在线视频| 日韩电影免费在线| 91精品免费在线观看| 免费欧美日韩国产三级电影| 欧美丰满一区二区免费视频| 香蕉影视欧美成人| 欧美剧情电影在线观看完整版免费励志电影| 亚洲女同ⅹxx女同tv| 色哟哟精品一区| 亚洲尤物在线视频观看| 99久久精品免费| 丝袜诱惑亚洲看片| 欧美一区二区三区日韩| 开心九九激情九九欧美日韩精美视频电影| 欧美一区二区在线免费观看| 天堂va蜜桃一区二区三区| 日韩久久久久久| 国产一区二区三区电影在线观看| 久久在线免费观看| 粉嫩av亚洲一区二区图片| 国产精品久久久久久亚洲毛片 | 中文av一区二区| 91在线视频官网| 亚洲激情成人在线| 欧美日本在线一区| 韩国av一区二区| 中文字幕中文字幕在线一区 | 国产大陆a不卡| 国产精品久久三区| 欧美性视频一区二区三区| 免费视频一区二区| 国产日韩影视精品| 在线免费av一区| 狠狠色狠狠色综合| 中文字幕在线一区| 欧美日本在线一区| 国产成人h网站| 亚洲一区国产视频| 欧美顶级少妇做爰| 成人理论电影网| 婷婷国产v国产偷v亚洲高清| 久久久夜色精品亚洲| 色香蕉久久蜜桃| 奇米在线7777在线精品| 亚洲欧美自拍偷拍| 精品欧美一区二区三区精品久久 | 国产日韩av一区| 欧美私人免费视频| 风间由美一区二区av101| 亚洲综合另类小说| 亚洲视频一区在线观看| 日韩欧美你懂的| 色先锋aa成人| 成人综合婷婷国产精品久久蜜臀 | 自拍偷自拍亚洲精品播放| 欧美一区二区三区喷汁尤物| 波多野洁衣一区| 精品一区二区影视| 亚洲第一成人在线| 中文字幕亚洲一区二区av在线| 777xxx欧美| 日本韩国欧美国产| 成人av免费观看| 狠狠v欧美v日韩v亚洲ⅴ| 一区二区久久久久久| 欧美激情综合网| 欧美另类高清zo欧美| 欧美在线观看禁18| 成人免费视频一区| 国产成人日日夜夜| 久久66热偷产精品| 麻豆国产欧美日韩综合精品二区| 亚洲一区二区四区蜜桃| 亚洲视频在线一区| 国产精品美女www爽爽爽| 久久久久久一二三区| 精品卡一卡二卡三卡四在线| 日韩欧美黄色影院| 色噜噜夜夜夜综合网| 成人综合激情网| 成人午夜av电影| 成人av网站免费观看| av在线一区二区三区| 成人一区二区在线观看| 成人永久免费视频| 99精品久久只有精品| 成人精品高清在线| av一区二区久久| 色网站国产精品| 欧美性极品少妇| 色天天综合色天天久久| 欧美日韩国产电影| 欧美日韩高清在线播放| 欧美日韩国产不卡| 69堂国产成人免费视频| 91精品国产综合久久香蕉麻豆| 91精品国产福利| 日韩欧美精品在线| 国产亚洲一区二区三区在线观看| 久久免费国产精品| 国产精品成人免费精品自在线观看| 国产精品美女久久久久久久网站| 国产精品久久久久久久岛一牛影视 | 欧美成人女星排名| 国产人成亚洲第一网站在线播放| 国产精品狼人久久影院观看方式| 中文字幕欧美一| 亚洲国产婷婷综合在线精品| 日本欧美加勒比视频| 韩国在线一区二区| 99久久婷婷国产精品综合| 91成人免费电影| 日韩一区二区三区在线| 精品精品欲导航| 成人欧美一区二区三区小说 | 综合电影一区二区三区| 亚洲福利一二三区| 久久99精品视频| 国产精品中文有码| 欧美日韩免费一区二区三区视频| 日韩精品一区二区三区在线播放| 日本一区二区三区四区| 亚洲综合免费观看高清完整版 | 亚洲黄一区二区三区| 日产欧产美韩系列久久99| 高清免费成人av| 欧美绝品在线观看成人午夜影视| 精品国产乱子伦一区| √…a在线天堂一区| 日韩电影在线免费观看| 成人精品视频网站| 日韩一区二区三| 国产精品成人免费在线| 免费高清视频精品| 成人sese在线| 久久久亚洲精品一区二区三区| 一区二区三区四区国产精品| 国产一区二区精品久久| 欧美日韩亚洲国产综合| 国产午夜亚洲精品理论片色戒| 亚洲一区二区成人在线观看| 韩国成人精品a∨在线观看| 欧美三级在线看| 欧美国产禁国产网站cc| 日韩不卡一二三区| 欧美专区在线观看一区| 国产精品视频观看| 黄网站免费久久| 欧美性受xxxx| 亚洲综合免费观看高清完整版| 成人激情开心网| 久久女同精品一区二区|