Hi,
can you try this timeline? All events are 24h events. When I try to move two events to the same day, only one event is visible... the other one is in background.
Thanks
Andy
TimeLine Code
JSON Data file content:
this issue is still present in latest build from 27.04. (6.0p)
Best regards
Andy
can you try this timeline? All events are 24h events. When I try to move two events to the same day, only one event is visible... the other one is in background.
Thanks
Andy
TimeLine Code
Code:
import java.util.Date;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.fields.DataSourceDateTimeField;
import com.smartgwt.client.data.fields.DataSourceSequenceField;
import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.types.DSDataFormat;
import com.smartgwt.client.types.Overflow;
import com.smartgwt.client.types.TimeUnit;
import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.calendar.Calendar;
import com.smartgwt.client.widgets.calendar.HeaderLevel;
import com.smartgwt.client.widgets.calendar.HeaderLevelTitleCustomizer;
import com.smartgwt.client.widgets.calendar.Lane;
import com.smartgwt.client.widgets.calendar.Timeline;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.layout.VLayout;
public class GTestTimeLine
{
private Timeline timeLine;
public GTestTimeLine()
{
initPopUp();
}
private void initPopUp()
{
VLayout layout = new VLayout();
layout.setSize( "100%", "100%" );
layout.setMembers( getTimeLine() );
layout.setOverflow( Overflow.HIDDEN );
Window window = new Window();
window.setOverflow( Overflow.HIDDEN );
window.setShowShadow( true );
window.setShadowSoftness( 10 );
window.setShadowOffset( 5 );
window.setSize( "100%", "100%" );
window.setCanDragResize( true );
window.setShowMaximizeButton( true );
window.setShowMinimizeButton( true );
window.setShowCloseButton( false );
window.setAnimateMinimize( true );
window.setShowCloseButton( true );
window.setModalMaskOpacity( 50 );
window.setIsModal( true );
window.setShowModalMask( true );
window.centerInPage();
window.addItem( layout );
window.draw();
}
private Timeline getTimeLine()
{
timeLine = new Timeline();
timeLine.setShowEventDescriptions( true );
timeLine.setShowQuickEventDialog( false );
timeLine.setShowAddEventButton( false );
timeLine.setCanCreateEvents( true );
timeLine.setCanRemoveEvents( true );
timeLine.setCanResizeEvents( false );
// Sets Hover
timeLine.setHoverWidth( 500 );
// Activate weekends
timeLine.setDisableWeekends( false );
timeLine.setShowWeekends( true );
// 60min x 24h (Ignore Time)
timeLine.setEventSnapGap( ( 24 * 60 ) );
// // Sets start and end date of calendar
timeLine.setStartDate( parseStringToDate( "12.04.2016", "dd.MM.yyyy" ) );
timeLine.setEndDate( parseStringToDate( "20.04.2016", "dd.MM.yyyy" ) );
// Sets lane field (first Columns)
timeLine.setLaneFields( new ListGridField[] { new ListGridField( "title", "Name", 350 ) } );
HeaderLevel headerDays = new HeaderLevel( TimeUnit.DAY );
headerDays.setHeaderWidth( 100 );
headerDays.setTitleFormatter( new HeaderLevelTitleCustomizer()
{
@Override
public String getTitle( HeaderLevel headerLevel, Date startDate, Date endDate, String defaultValue,
Calendar calendar )
{
DateTimeFormat fmt = DateTimeFormat.getFormat( "EEE,dd.MMM" );
return fmt.format( startDate );
}
} );
HeaderLevel[] headerLevels = new HeaderLevel[] { new HeaderLevel( TimeUnit.WEEK ), headerDays };
// // Sets Header Levels
timeLine.setHeaderLevels( headerLevels );
// Init Lanes
timeLine.setLanes( getLanes() );
// Can not move via drag & drop to another lane
timeLine.setCanEditLane( false );
timeLine.setCanReorderLanes( true );
timeLine.setLaneEventPadding( 2 );
// Gets DataSource
timeLine.setDataSource( getDataSource() );
timeLine.setAutoFetchData( true );
return timeLine;
}
public Lane[] getLanes()
{
Lane[] lanes = new Lane[] { getLane( "648", "Test Lane 648" ), getLane( "01", "Test Lane 01" ),
getLane( "02", "Test Lane 02" ) };
return lanes;
}
private Lane getLane( String name, String title )
{
Lane lane = new Lane( name, title );
return lane;
}
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/**
* Rebuilds Calendar
*/
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
public void rebuildCalendar()
{
timeLine.getSelectedView().rebuild();
}
public DataSource getDataSource()
{
DataSource ds = new DataSource();
ds.setDataURL( "List/timelineTest.json" );
ds.setClientOnly( true );
ds.setID( "timelinetest" );
ds.setDataFormat( DSDataFormat.JSON );
DataSourceSequenceField eventIdField = new DataSourceSequenceField( "eventId", "eventId" );
eventIdField.setPrimaryKey( true );
DataSourceDateTimeField startDateField = new DataSourceDateTimeField( "startDate", "startDate" );
DataSourceDateTimeField endDateField = new DataSourceDateTimeField( "endDate", "endDate" );
DataSourceTextField laneField = new DataSourceTextField( "lane", "lane" );
DataSourceTextField nameField = new DataSourceTextField( "name", "name" );
DataSourceTextField descriptionField = new DataSourceTextField( "description", "description" );
ds.setFields( eventIdField, nameField, descriptionField, laneField, startDateField, endDateField );
return ds;
}
public static Date parseStringToDate( String dateString, String format )
{
return DateTimeFormat.getFormat( format ).parse( dateString );
}
}
JSON Data file content:
Code:
[
{"eventId":1538,"name":"test1","description":"Desc1","lane":648,"startDate":"2016-04-13T00:00:00+01:00","endDate":"2016-04-13T00:00:00+01:00"},
{"eventId":1539,"name":"test2","description":"Desc2","lane":648,"startDate":"2016-04-14T00:00:00+01:00","endDate":"2016-04-14T00:00:00+01:00"},
{"eventId":1537,"name":"test3","description":"Desc3","lane":648,"startDate":"2016-04-15T00:00:00+01:00","endDate":"2016-04-15T00:00:00+01:00"}
]
Best regards
Andy
Comment