我创建了一个p:gridPanel,在其中我绘制了具有不同colSpans的p:面板。这些面板包含一个h:outputText。在每个面板上我放置一个p:可调整大小以改变宽度。但是,在第一次调整大小时,面板会捕捉到childelement的宽度(h:outputText)并从宽度开始调整大小。
<c:forEach items="#{dataHandler.employees}" var="employee">
<p:row>
<p:column styleClass="employeeColumn">
<h:outputText value="#{employee.name}" styleClass="standardText"/>
</p:column >
<c:forEach items="#{employee.activities}" var="activity">
<p:column colspan="#{activity.duration}">
<c:choose>
<c:when test="#{activity.category == 'empty'}"/>
<c:otherwise>
<p:panel id="#{activity.id}" styleClass="activityPanel"
style="background-color:#{activity.color}">
<h:outputText value="#{activity.name} - #{activity.duration} days" styleClass="activityText"/>
</p:panel>
<p:resizable for="#{activity.id}" handles="e,w" grid="22" minHeight="15" maxHeight="15"/>
<p:draggable for="#{activity.id}" handle=".ui-panel-titlebar" stack=".ui-panel" grid="23,15"
containment="containment"/>
<p:tooltip for="#{activity.id}" styleClass="toolTip">
#{activity.name} <br/> #{employee.name} <br/>from #{activity.startTime} to #{activity.endTime}
</p:tooltip>
</c:otherwise>
</c:choose>
</p:column>
</c:forEach>
</p:row>