I want to make a chat Screen to show the chat messages between two users. I am using ListGrid as a base component have CSS applied on the each row using setCellFormatter() method. although my HTML generates properly with proper CSS STYLE. But in Visual display I get the rows with alternate rows showing proper view.
.css
ListGrid code :
I am also attaching the o/p I currently getting. Can anyone please help me out as I need this urgently fixed
.css
Code:
.messageListFromRow,
.messageListFromRowOver,
.messageListFromRowDark,
.messageListFromRowSelected,
.messageListFromRowSelectedDark,
.messageListFromRowSelectedOver,
.messageListFromRowSelectedOverDark,
.messageListToRow,
.messageListToRowOver,
.messageListToRowDark,
.messageListToRowSelected,
.messageListToRowSelectedDark,
.messageListToRowSelectedOver,
.messageListToRowSelectedOverDark
{
position: relative;
margin: 3px;
min-height:45px;
max-width: 88%;
width:auto;
clear: both;
}
.messageListToRow,
.messageListToRowOver,
.messageListToRowDark,
.messageListToRowSelected,
.messageListToRowSelectedDark,
.messageListToRowSelectedOver,
.messageListToRowSelectedOverDark
{
float: left;
margin-right: auto;
height: auto;
padding: 4px 10px 4px 60px; /*position within the border*/
}
.messageListToRow:before
{
z-index: -1;
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 50px;
content: "";
border-width: 8px 10px 8px 17px;
border-image: url('./images/speech_bubble_left_2.png') 8 10 8 17 stretch stretch;
-webkit-border-image: url('./images/speech_bubble_left_2.png') 8 10 8 17 stretch stretch;
-moz-border-image: url('./images/speech_bubble_left_2.png') 8 10 8 17 stretch stretch;
-o-border-image: url('./images/speech_bubble_left_2.png') 8 10 8 17 stretch stretch;
}
.messageListToRow:after{
z-index: -1;
position: absolute;
left: 0px;
width: 48px;
bottom: 0px;
height: 48px;
content:"";
background-image: url('./images/left_chatter.png');
background-size: 48px 48px;
background-position: bottom left;
border-radius: 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-o-border-radius: 3px;
-ms-border-radius: 3px;
}
.messageListFromRow,
.messageListFromRowOver,
.messageListFromRowDark,
.messageListFromRowSelected,
.messageListFromRowSelectedDark,
.messageListFromRowSelectedOver,
.messageListFromRowSelectedOverDark
{
z-index: -1;
float: right;
margin-left: auto;
height:auto;
padding: 4px 60px 4px 10px; /*position within the border*/
text-align: right;
}
.messageListFromRow:before
{
z-index: -1;
position: absolute;
top: 0px;
right: 50px;
bottom: 0px;
left: 0px;
content: "";
border-width: 8px 17px 8px 10px;
border-image: url('./images/speech_bubble_right_2.png') 8 17 8 10 stretch stretch ;
-webkit-border-image: url('./images/speech_bubble_right_2.png') 8 17 8 10 stretch stretch ;
-moz-border-image: url('./images/speech_bubble_right_2.png') 8 17 8 10 stretch stretch ;
-o-border-image: url('./images/speech_bubble_right_2.png') 8 17 8 10 stretch stretch ;
}
.messageListFromRow:after{
z-index: -1;
position: absolute;
right: 0px;
width: 48px;
bottom: 0px;
height: 48px;
content:"";
background-image: url(./images/right_chatter.png);
background-size: 48px 48px;
background-position: right bottom;
border-radius: 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-o-border-radius: 3px;
-ms-border-radius: 3px;
}
Code:
messageList.setHeight100();
messageList.setWidth100();
messageList.setBorder("1px solid grey");
messageList.setCellHeight(70);
messageList.setShowHeader(false);
messageList.setWrapCells(true);
messageList.setLeaveScrollbarGap(false);
messageList.setShowAllRecords(true);
messageList.setBodyStyleName("messageGridBody");
messageList.setDataSource(DataSource.get(MESSAGE_DMI));
messageList.fetchData(criteria, new DSCallback()
{
@Override
public void execute(DSResponse response, Object rawData, DSRequest request)
{
messageList.getField("displayMessageList").setCellFormatter(new CellFormatter()
{
@Override
public String format(Object value, ListGridRecord record, int rowNum, int colNum)
{
String strTemp = "";
if(record.getAttributeAsString("senderRoleName").equalsIgnoreCase("Dispatcher"))
{
if(record.getAttributeAsBoolean("truckMarkDeleted"))
{
record.setEnabled(false);
}
else
{
record.setEnabled(true);
}
strTemp = "<div class=\"messageListToRow\">"+ record.getAttributeAsString("truckName") + " : " +
record.getAttributeAsString("truckDriverName") + " : " + DateUtil.formatAsShortDatetime(record.getAttributeAsDate("sentDateAndTime")) +
"<br>"+ record.getAttributeAsString("txtMessage")+ "</div>";
return strTemp;
}
else
{
if(record.getAttributeAsBoolean("truckMarkDeleted"))
{
record.setEnabled(false);
}
else
{
record.setEnabled(true);
}
strTemp = "<div class=\"messageListFromRow\">"+ record.getAttributeAsString("truckName") + " : " +
record.getAttributeAsString("truckDriverName") + " : " + DateUtil.formatAsShortDatetime(record.getAttributeAsDate("sentDateAndTime")) +
"<br>" + record.getAttributeAsString("txtMessage")+ "</div>";
return strTemp;
}
}
});
}
});
messageList.redraw();
Comment