You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by ts...@apache.org on 2004/06/17 16:39:07 UTC
cvs commit: jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/table TreeTableDataView.java
tsvetelin 2004/06/17 07:39:07
Modified: contrib/src/org/apache/tapestry/contrib/tree/components
Tree.jwc TreeDataView.java TreeNodeView.jwc
TreeNodeView.html TreeNodeView.java
contrib/src/org/apache/tapestry/contrib/tree/model
TreeRowObject.java ITreeRowSource.java
contrib/src/org/apache/tapestry/contrib/tree/components/table
TreeTableDataView.java
Added: contrib/src/org/apache/tapestry/contrib/tree/components
MiddlePlus.gif BottomPlus.gif MiddleCrossLine.gif
TopMinus.gif TopLastMinus.gif MiddleMinus.gif
WhiteSpace.gif TopLine.gif TopPlus.gif
MiddleLine.gif BottomLine.gif BottomMinus.gif
TopLastPlus.gif
Removed: contrib/src/org/apache/tapestry/contrib/tree/components
plus.gif minus.gif
Log:
Tree compoment UI improvements
Revision Changes Path
1.5 +4 -8 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/Tree.jwc
Index: Tree.jwc
===================================================================
RCS file: /home/cvs/jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/Tree.jwc,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Tree.jwc 8 Jun 2004 08:30:43 -0000 1.4
+++ Tree.jwc 17 Jun 2004 14:39:06 -0000 1.5
@@ -40,18 +40,16 @@
direction="custom" required="no">
</parameter>
- <parameter name="closeNodeImage" type="org.apache.tapestry.IAsset"
- required="no" direction="in"/>
- <parameter name="openNodeImage" type="org.apache.tapestry.IAsset"
- required="no" direction="in"/>
-
<parameter name="showNodeImages" type="boolean" required="no"
direction="custom"/>
+
<parameter name="makeNodeDirect" type="boolean" required="no"
direction="custom"/>
+
<parameter name="nodeRenderFactory"
type="org.apache.tapestry.contrib.tree.components.INodeRenderFactory"
required="no" direction="custom"/>
+
<parameter name="showRootNode" type="boolean" required="no"
direction="custom"/>
@@ -69,8 +67,6 @@
</component>
<component id="treeNodeValue" type="TreeNodeView">
- <inherited-binding name="closeNodeImage" parameter-name="closeNodeImage"/>
- <inherited-binding name="openNodeImage" parameter-name="openNodeImage"/>
<inherited-binding name="showNodeImages" parameter-name="showNodeImages"/>
<inherited-binding name="makeNodeDirect" parameter-name="makeNodeDirect"/>
<inherited-binding name="nodeRenderFactory" parameter-name="nodeRenderFactory"/>
1.7 +34 -6 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/TreeDataView.java
Index: TreeDataView.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/TreeDataView.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TreeDataView.java 8 Jun 2004 08:30:43 -0000 1.6
+++ TreeDataView.java 17 Jun 2004 14:39:06 -0000 1.7
@@ -76,12 +76,25 @@
Object objRoot = objTreeDataModel.getRoot();
Object objRootUID = objTreeDataModel.getUniqueKey(objRoot, null);
if(getShowRootNode()){
- walkTree(objRoot, objRootUID, 0, objTreeModel, writer, cycle);
+ walkTree(objRoot, objRootUID, 0, objTreeModel, writer, cycle, TreeRowObject.FIRST_LAST_ROW, new int[0], true);
}else{
+ boolean bFirst = true;
+ int nChildenCount = objTreeModel.getTreeDataModel().getChildCount(objRoot);
+ int nRowPossiotionType = nChildenCount == 1 ? TreeRowObject.FIRST_LAST_ROW : TreeRowObject.FIRST_ROW;
for (Iterator iter = objTreeModel.getTreeDataModel().getChildren(objRoot); iter.hasNext();) {
Object objChild = iter.next();
Object objChildUID = objTreeModel.getTreeDataModel().getUniqueKey(objChild, objRoot);
- walkTree(objChild, objChildUID, 0, objTreeModel, writer, cycle);
+ boolean bChildLast = !iter.hasNext();
+ if( !bFirst){
+ if(bChildLast)
+ nRowPossiotionType = TreeRowObject.LAST_ROW;
+ else
+ nRowPossiotionType = TreeRowObject.MIDDLE_ROW;
+ }
+
+ walkTree(objChild, objChildUID, 0, objTreeModel, writer, cycle, nRowPossiotionType, new int[0], bChildLast);
+
+ bFirst = false;
}
}
@@ -90,18 +103,32 @@
public void walkTree(Object objParent, Object objParentUID, int nDepth,
ITreeModel objTreeModel, IMarkupWriter writer,
- IRequestCycle cycle) {
- m_objTreeRowObject = new TreeRowObject(objParent, objParentUID, nDepth);
+ IRequestCycle cycle, int nRowPossiotionType, int[] arrConnectImages, boolean bLast) {
+ int nNumberOfChildren = objTreeModel.getTreeDataModel().getChildCount(objParent);
+ boolean bLeaf = (nNumberOfChildren == 0) ? true : false;
+ m_objTreeRowObject = new TreeRowObject(objParent, objParentUID, nDepth, bLeaf, nRowPossiotionType, arrConnectImages);
m_nTreeDeep = nDepth;
super.renderComponent(writer, cycle);
boolean bContain = objTreeModel.getTreeStateModel().isUniqueKeyExpanded(objParentUID);
if (bContain) {
+ int[] arrConnectImagesNew = new int[arrConnectImages.length+1];
+ System.arraycopy(arrConnectImages, 0, arrConnectImagesNew, 0, arrConnectImages.length);
+ if(bLast)
+ arrConnectImagesNew[arrConnectImagesNew.length-1] = TreeRowObject.EMPTY_CONN_IMG;
+ else
+ arrConnectImagesNew[arrConnectImagesNew.length-1] = TreeRowObject.LINE_CONN_IMG;
+
for (Iterator iter = objTreeModel.getTreeDataModel().getChildren(objParent); iter.hasNext();) {
Object objChild = iter.next();
Object objChildUID = objTreeModel.getTreeDataModel().getUniqueKey(objChild, objParentUID);
- walkTree(objChild, objChildUID, nDepth+1, objTreeModel, writer, cycle);
+ boolean bChildLast = !iter.hasNext();
+ if(bChildLast)
+ nRowPossiotionType = TreeRowObject.LAST_ROW;
+ else
+ nRowPossiotionType = TreeRowObject.MIDDLE_ROW;
+ walkTree(objChild, objChildUID, nDepth+1, objTreeModel, writer, cycle, nRowPossiotionType, arrConnectImagesNew, bChildLast);
}
}
}
@@ -132,4 +159,5 @@
}
return bShowRootNode;
}
+
}
1.5 +35 -19 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/TreeNodeView.jwc
Index: TreeNodeView.jwc
===================================================================
RCS file: /home/cvs/jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/TreeNodeView.jwc,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- TreeNodeView.jwc 8 Jun 2004 08:30:43 -0000 1.4
+++ TreeNodeView.jwc 17 Jun 2004 14:39:06 -0000 1.5
@@ -23,11 +23,6 @@
class="org.apache.tapestry.contrib.tree.components.TreeNodeView"
allow-body="yes" allow-informal-parameters="yes">
- <parameter name="closeNodeImage" type="org.apache.tapestry.IAsset"
- required="no" direction="in"/>
- <parameter name="openNodeImage" type="org.apache.tapestry.IAsset"
- required="no" direction="in"/>
-
<parameter name="showNodeImages" type="boolean" required="no"
direction="custom"/>
<parameter name="makeNodeDirect" type="boolean" required="no"
@@ -37,14 +32,7 @@
type="org.apache.tapestry.contrib.tree.components.INodeRenderFactory"
required="no" direction="custom"/>
- <!--parameter name="treeStateListener"
- type="org.apache.tapestry.contrib.tree.model.ITreeStateListener"
- direction="custom" required="no">
- </parameter-->
-
- <reserved-parameter name="opennodeimage"/>
<reserved-parameter name="treedataview"/>
- <reserved-parameter name="closenodeimage"/>
<reserved-parameter name="nodeviewdirect"/>
<component id="expandCollapsDirect" type="DirectLink">
@@ -53,6 +41,7 @@
<binding name="stateful" expression="false"/>
<binding name="name" expression="selectedID"/>
<binding name="anchor" expression="cleanSelectedID"/>
+ <binding name="disabled" expression="disableLink"/>
</component>
<component id="nodeDirect" type="DirectLink">
@@ -87,12 +76,39 @@
</component>
<component id="insertValue2" copy-of="insertValue"/>
- <component id="offset" type="Any">
- <static-binding name="element">span</static-binding>
- <binding name="style" expression="offsetStyle"/>
+ <component id="class" type="Any">
+ <static-binding name="element">div</static-binding>
<binding name="class" expression="nodeStyleClass"/>
</component>
-
- <private-asset name="_closeNodeImage" resource-path="plus.gif"/>
- <private-asset name="_openNodeImage" resource-path="minus.gif"/>
+
+ <private-asset name="_topCloseNodeImage" resource-path="TopPlus.gif"/>
+ <private-asset name="_topOpenNodeImage" resource-path="TopMinus.gif"/>
+ <private-asset name="_topLineImage" resource-path="TopLine.gif"/>
+
+ <private-asset name="_topLastOpenNodeImage" resource-path="TopLastMinus.gif"/>
+ <private-asset name="_topLastCloseNodeImage" resource-path="TopLastPlus.gif"/>
+
+ <private-asset name="_middleCloseNodeImage" resource-path="MiddlePlus.gif"/>
+ <private-asset name="_middleOpenNodeImage" resource-path="MiddleMinus.gif"/>
+ <private-asset name="_middleCrossLineImage" resource-path="MiddleCrossLine.gif"/>
+ <private-asset name="_middleLineImage" resource-path="MiddleLine.gif"/>
+
+ <private-asset name="_bottomCloseNodeImage" resource-path="BottomPlus.gif"/>
+ <private-asset name="_bottomOpenNodeImage" resource-path="BottomMinus.gif"/>
+ <private-asset name="_bottomLineImage" resource-path="BottomLine.gif"/>
+
+ <private-asset name="_whiteSpaceImage" resource-path="WhiteSpace.gif"/>
+
+ <component id="showConnectImage" type="Conditional">
+ <binding name="condition" expression="showConnectImage"/>
+ </component>
+ <component id="connectImage" type="Image">
+ <binding name="image" expression="connectImage"/>
+ </component>
+ <component id="foreachConnectImage" type="Foreach">
+ <binding name="source" expression="foreachConnectImageList"/>
+ <binding name="value" expression="currentForeachConnectImageValue"/>
+ </component>
+
+
</component-specification>
1.3 +1 -19 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/TreeNodeView.html
Index: TreeNodeView.html
===================================================================
RCS file: /home/cvs/jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/TreeNodeView.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TreeNodeView.html 8 Jun 2004 08:30:43 -0000 1.2
+++ TreeNodeView.html 17 Jun 2004 14:39:06 -0000 1.3
@@ -1,23 +1,5 @@
<!-- generated by Spindle, http://spindle.sourceforge.net -->
<span jwcid="$content$">
- <span jwcid="offset">
- <span jwcid="makeNodeDirect">
- <a jwcid="expandCollapsDirect">
- <span jwcid="showImages">
- <img jwcid="imageNode"/>
- </span>
- </a>
- <a jwcid="nodeDirect">
- <span jwcid="insertValue"/>
- </a>
- <br>
- </span>
- <span jwcid="makeNodeNoDirect">
- <span jwcid="showImages2">
- <img jwcid="imageNode2"/>
- </span>
- <span jwcid="insertValue2"/><br>
- </span>
- </span>
+ <span jwcid="class"><span jwcid="foreachConnectImage"><img jwcid="connectImage" valign="top"/></span><span jwcid="makeNodeDirect"><a jwcid="expandCollapsDirect"><span jwcid="showImages"><img jwcid="imageNode"/></span></a><a jwcid="nodeDirect"><span jwcid="insertValue"/></a></span><span jwcid="makeNodeNoDirect"><span jwcid="showImages2"><img jwcid="imageNode2"/></span><span jwcid="insertValue2"/></span></span>
</span>
1.7 +160 -4 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/TreeNodeView.java
Index: TreeNodeView.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/TreeNodeView.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TreeNodeView.java 8 Jun 2004 08:30:43 -0000 1.6
+++ TreeNodeView.java 17 Jun 2004 14:39:06 -0000 1.7
@@ -51,6 +51,8 @@
private IAsset m_objOpenNodeImage;
private IAsset m_objCloseNodeImage;
+
+ private int m_CurrentForeachConnectImageValue = TreeRowObject.LINE_CONN_IMG;
public TreeNodeView(){
super();
@@ -62,6 +64,7 @@
m_objShowNodeImages = null;
m_objNodeRenderFactory = null;
m_objMakeNodeDirect = null;
+ m_CurrentForeachConnectImageValue = TreeRowObject.LINE_CONN_IMG;
}
public IRender getCurrentRenderer(){
@@ -205,6 +208,99 @@
* @return IAsset
*/
public IAsset getNodeImage() {
+ IAsset objResult = null;
+ ITreeRowSource objRowSource = getTreeRowSource();
+ boolean bLeaf = objRowSource.getTreeRow().getLeaf();
+ int nRowType = objRowSource.getTreeRow().getTreeRowPossiotionType();
+ if(!bLeaf){
+ if(isNodeOpen()) {
+ switch (nRowType) {
+ case TreeRowObject.FIRST_LAST_ROW:{
+ objResult = getAsset("_topLastOpenNodeImage");
+ break;
+ }
+
+ case TreeRowObject.FIRST_ROW:{
+ objResult = getAsset("_topOpenNodeImage");
+ break;
+ }
+
+ case TreeRowObject.MIDDLE_ROW:{
+ objResult = getAsset("_middleOpenNodeImage");
+ break;
+ }
+
+ case TreeRowObject.LAST_ROW:{
+ objResult = getAsset("_bottomOpenNodeImage");
+ break;
+ }
+
+ default : {
+ objResult = getAsset("_openNodeImage");
+ break;
+ }
+ }
+ } else {
+ switch (nRowType) {
+ case TreeRowObject.FIRST_LAST_ROW:{
+ objResult = getAsset("_topLastCloseNodeImage");
+ break;
+ }
+
+ case TreeRowObject.FIRST_ROW:{
+ objResult = getAsset("_topCloseNodeImage");
+ break;
+ }
+
+ case TreeRowObject.MIDDLE_ROW:{
+ objResult = getAsset("_middleCloseNodeImage");
+ break;
+ }
+
+ case TreeRowObject.LAST_ROW:{
+ objResult = getAsset("_bottomCloseNodeImage");
+ break;
+ }
+
+ default : {
+ objResult = getAsset("_closeNodeImage");
+ break;
+ }
+ }
+ }
+ }else{
+ switch (nRowType) {
+ case TreeRowObject.FIRST_LAST_ROW:{
+ objResult = getAsset("_topLineImage");
+ break;
+ }
+
+ case TreeRowObject.FIRST_ROW:{
+ objResult = getAsset("_topLineImage");
+ break;
+ }
+
+ case TreeRowObject.MIDDLE_ROW:{
+ objResult = getAsset("_middleCrossLineImage");
+ break;
+ }
+
+ case TreeRowObject.LAST_ROW:{
+ objResult = getAsset("_bottomLineImage");
+ break;
+ }
+
+ default : {
+ objResult = getAsset("_bottomLineImage");
+ break;
+ }
+ }
+
+ }
+ return objResult;
+ }
+
+ public IAsset getNodeImageOld() {
if(isNodeOpen()) {
if (m_objOpenNodeImage == null) {
m_objOpenNodeImage = getAsset("_openNodeImage");
@@ -217,7 +313,7 @@
return m_objCloseNodeImage;
}
}
-
+
/**
* Returns the closeNodeImage.
* @return IAsset
@@ -307,14 +403,16 @@
}
public String getOffsetStyle() {
- //return "width: " + getTreeDataView().getTreeDeep() * 15;
+ //return "width: " + getTreeDataView().getTreeDeep() * 15;
ITreeRowSource objTreeRowSource = getTreeRowSource();
TreeRowObject objTreeRowObject = objTreeRowSource.getTreeRow();
int nTreeRowDepth = 0;
if(objTreeRowObject != null){
nTreeRowDepth = objTreeRowObject.getTreeRowDepth();
+ if(nTreeRowDepth != 0)
+ nTreeRowDepth = nTreeRowDepth - 1;
}
- return "padding-left: " + nTreeRowDepth * 15+"px";
+ return "padding-left: " + nTreeRowDepth * 19+"px";
}
/**
@@ -427,5 +525,63 @@
public ITreeModelSource getTreeModelSource(){
ITreeModelSource objSource = (ITreeModelSource)getPage().getRequestCycle().getAttribute(ITreeModelSource.TREE_MODEL_SOURCE_ATTRIBUTE);
return objSource;
+ }
+
+ public boolean getShowConnectImage(){
+ ITreeRowSource objRowSource = getTreeRowSource();
+ int nRowType = objRowSource.getTreeRow().getTreeRowPossiotionType();
+ if(TreeRowObject.MIDDLE_ROW == nRowType)
+ return true;
+ return false;
+ }
+
+ public int[] getForeachConnectImageList(){
+ ITreeRowSource objTreeRowSource = getTreeRowSource();
+ TreeRowObject objTreeRowObject = objTreeRowSource.getTreeRow();
+ return objTreeRowObject.getLineConnImages();
+ }
+
+ public boolean getDisableLink(){
+ ITreeRowSource objRowSource = getTreeRowSource();
+ boolean bLeaf = objRowSource.getTreeRow().getLeaf();
+ return bLeaf;
+ }
+ /**
+ * Returns the openNodeImage.
+ * @return IAsset nevalidno neshto
+ */
+ public IAsset getConnectImage() {
+ IAsset objResult = null;
+ int nConnectImageType = getCurrentForeachConnectImageValue();
+ switch (nConnectImageType) {
+ case TreeRowObject.EMPTY_CONN_IMG:{
+ objResult = getAsset("_whiteSpaceImage");
+ break;
+ }
+
+ case TreeRowObject.LINE_CONN_IMG:{
+ objResult = getAsset("_middleLineImage");
+ break;
+ }
+
+ default : {
+ objResult = getAsset("_whiteSpaceImage");
+ break;
+ }
+ }
+ return objResult;
+ }
+ /**
+ * @return Returns the m_CurrentForeachConnectImageValue.
+ */
+ public int getCurrentForeachConnectImageValue() {
+ return m_CurrentForeachConnectImageValue;
+ }
+ /**
+ * @param currentForeachConnectImageValue The m_CurrentForeachConnectImageValue to set.
+ */
+ public void setCurrentForeachConnectImageValue(
+ int currentForeachConnectImageValue) {
+ m_CurrentForeachConnectImageValue = currentForeachConnectImageValue;
}
}
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/MiddlePlus.gif
<<Binary file>>
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/BottomPlus.gif
<<Binary file>>
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/MiddleCrossLine.gif
<<Binary file>>
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/TopMinus.gif
<<Binary file>>
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/TopLastMinus.gif
<<Binary file>>
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/MiddleMinus.gif
<<Binary file>>
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/WhiteSpace.gif
<<Binary file>>
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/TopLine.gif
<<Binary file>>
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/TopPlus.gif
<<Binary file>>
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/MiddleLine.gif
<<Binary file>>
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/BottomLine.gif
<<Binary file>>
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/BottomMinus.gif
<<Binary file>>
1.1 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/TopLastPlus.gif
<<Binary file>>
1.5 +35 -3 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/model/TreeRowObject.java
Index: TreeRowObject.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/model/TreeRowObject.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- TreeRowObject.java 19 Feb 2004 17:37:59 -0000 1.4
+++ TreeRowObject.java 17 Jun 2004 14:39:07 -0000 1.5
@@ -19,15 +19,29 @@
* @version $Id$
*/
public class TreeRowObject {
- private Object m_objTreeNode = null;
+ public static final int FIRST_ROW = 1;
+ public static final int MIDDLE_ROW = 2;
+ public static final int LAST_ROW = 3;
+ public static final int FIRST_LAST_ROW = 4;
+
+ public static final int EMPTY_CONN_IMG = 1;
+ public static final int LINE_CONN_IMG = 2;
+
+ private Object m_objTreeNode = null;
private Object m_objTreeNodeUID = null;
private int m_nTreeRowDepth;
+ private boolean m_bLeaf = false;
+ private int m_nTreeRowPossiotionType = MIDDLE_ROW;
+ private int[] m_nLineConnImages;
- public TreeRowObject(Object objTreeNode, Object objTreeNodeUID, int nTreeRowDepth) {
+ public TreeRowObject(Object objTreeNode, Object objTreeNodeUID, int nTreeRowDepth, boolean bLeaf, int nTreeRowPossiotionType, int[] nLineConnImages) {
super();
m_objTreeNode = objTreeNode;
m_objTreeNodeUID = objTreeNodeUID;
m_nTreeRowDepth = nTreeRowDepth;
+ m_bLeaf = bLeaf;
+ m_nTreeRowPossiotionType = nTreeRowPossiotionType;
+ m_nLineConnImages = nLineConnImages;
}
public Object getTreeNode() {
@@ -42,4 +56,22 @@
return m_nTreeRowDepth;
}
+ /**
+ * @return Returns the leaf.
+ */
+ public boolean getLeaf() {
+ return m_bLeaf;
+ }
+ /**
+ * @return Returns the treeRowPossiotionType.
+ */
+ public int getTreeRowPossiotionType() {
+ return m_nTreeRowPossiotionType;
+ }
+ /**
+ * @return Returns the lineConnImages.
+ */
+ public int[] getLineConnImages() {
+ return m_nLineConnImages;
+ }
}
1.4 +2 -2 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/model/ITreeRowSource.java
Index: ITreeRowSource.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/model/ITreeRowSource.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ITreeRowSource.java 19 Feb 2004 17:37:59 -0000 1.3
+++ ITreeRowSource.java 17 Jun 2004 14:39:07 -0000 1.4
@@ -25,7 +25,7 @@
public interface ITreeRowSource
{
final static String TREE_ROW_SOURCE_ATTRIBUTE = "org.apache.tapestry.contrib.tree.model.ITreeRowSource";
-
+
/**
* Method getTreeRow
* @return Object the current tree row object.
1.7 +31 -5 jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/table/TreeTableDataView.java
Index: TreeTableDataView.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/contrib/src/org/apache/tapestry/contrib/tree/components/table/TreeTableDataView.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TreeTableDataView.java 8 Jun 2004 08:30:43 -0000 1.6
+++ TreeTableDataView.java 17 Jun 2004 14:39:07 -0000 1.7
@@ -93,11 +93,23 @@
Object objRoot = objTreeDataModel.getRoot();
Object objRootUID = objTreeDataModel.getUniqueKey(objRoot, null);
if(getShowRootNode()){
+ walkTree(arrAllExpandedNodes, objRoot, objRootUID, 0, objTreeModel, TreeRowObject.FIRST_LAST_ROW, new int[0], true);
}else{
+ int nChildenCount = objTreeModel.getTreeDataModel().getChildCount(objRoot);
+ int nRowPossiotionType = nChildenCount == 1 ? TreeRowObject.FIRST_LAST_ROW : TreeRowObject.FIRST_ROW;
+ boolean bFirst = true;
for (Iterator iter = objTreeModel.getTreeDataModel().getChildren(objRoot); iter.hasNext();) {
Object objChild = iter.next();
Object objChildUID = objTreeModel.getTreeDataModel().getUniqueKey(objChild, objRoot);
- walkTree(arrAllExpandedNodes, objChild, objChildUID, 0, objTreeModel);
+ boolean bChildLast = !iter.hasNext();
+ if( !bFirst){
+ if(bChildLast)
+ nRowPossiotionType = TreeRowObject.LAST_ROW;
+ else
+ nRowPossiotionType = TreeRowObject.MIDDLE_ROW;
+ }
+ walkTree(arrAllExpandedNodes, objChild, objChildUID, 0, objTreeModel, nRowPossiotionType, new int[0], bChildLast);
+ bFirst = false;
}
}
@@ -109,19 +121,32 @@
}
public void walkTree(ArrayList arrAllExpandedNodes, Object objParent, Object objParentUID, int nDepth,
- ITreeModel objTreeModel) {
+ ITreeModel objTreeModel, int nRowPossiotionType, int[] arrConnectImages, boolean bLast) {
m_nTreeDeep = nDepth;
- TreeRowObject objTreeRowObject = new TreeRowObject(objParent, objParentUID, nDepth);
+ int nNumberOfChildren = objTreeModel.getTreeDataModel().getChildCount(objParent);
+ boolean bLeaf = (nNumberOfChildren == 0) ? true : false;
+ TreeRowObject objTreeRowObject = new TreeRowObject(objParent, objParentUID, nDepth, bLeaf, nRowPossiotionType, arrConnectImages);
arrAllExpandedNodes.add(objTreeRowObject);
boolean bContain = objTreeModel.getTreeStateModel().isUniqueKeyExpanded(objParentUID);
if (bContain) {
+ int[] arrConnectImagesNew = new int[arrConnectImages.length+1];
+ System.arraycopy(arrConnectImages, 0, arrConnectImagesNew, 0, arrConnectImages.length);
+ if(bLast)
+ arrConnectImagesNew[arrConnectImagesNew.length-1] = TreeRowObject.EMPTY_CONN_IMG;
+ else
+ arrConnectImagesNew[arrConnectImagesNew.length-1] = TreeRowObject.LINE_CONN_IMG;
Iterator colChildren = objTreeModel.getTreeDataModel().getChildren(objParent);
for (Iterator iter = colChildren; iter.hasNext();) {
Object objChild = iter.next();
Object objChildUID = objTreeModel.getTreeDataModel().getUniqueKey(objChild, objParentUID);
- walkTree(arrAllExpandedNodes, objChild, objChildUID, nDepth+1, objTreeModel);
+ boolean bChildLast = !iter.hasNext();
+ if(!bChildLast)
+ nRowPossiotionType = TreeRowObject.LAST_ROW;
+ else
+ nRowPossiotionType = TreeRowObject.MIDDLE_ROW;
+ walkTree(arrAllExpandedNodes, objChild, objChildUID, nDepth+1, objTreeModel, nRowPossiotionType, arrConnectImagesNew, bChildLast);
}
}
}
@@ -241,4 +266,5 @@
}
return bShowRootNode;
}
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org