91 lines
2.6 KiB
Java
91 lines
2.6 KiB
Java
|
package org.gcube.portlets.user.geoportaldataviewer.client.ui.cms.project.relation;
|
||
|
|
||
|
import java.util.List;
|
||
|
|
||
|
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerServiceAsync;
|
||
|
|
||
|
import com.google.gwt.core.client.GWT;
|
||
|
import com.google.gwt.core.client.Scheduler;
|
||
|
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
|
||
|
import com.google.gwt.json.client.JSONArray;
|
||
|
import com.google.gwt.json.client.JSONParser;
|
||
|
import com.google.gwt.uibinder.client.UiBinder;
|
||
|
import com.google.gwt.uibinder.client.UiField;
|
||
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||
|
import com.google.gwt.user.client.ui.Composite;
|
||
|
import com.google.gwt.user.client.ui.ScrollPanel;
|
||
|
import com.google.gwt.user.client.ui.Widget;
|
||
|
|
||
|
public class TimelineRelationPanel extends Composite {
|
||
|
|
||
|
@UiField
|
||
|
ScrollPanel timelineContainer;
|
||
|
|
||
|
private static TimelineRelationPanelUiBinder uiBinder = GWT.create(TimelineRelationPanelUiBinder.class);
|
||
|
|
||
|
interface TimelineRelationPanelUiBinder extends UiBinder<Widget, TimelineRelationPanel> {
|
||
|
}
|
||
|
|
||
|
public TimelineRelationPanel(String profileID, String projectID) {
|
||
|
initWidget(uiBinder.createAndBindUi(this));
|
||
|
|
||
|
timelineContainer.getElement().setId("visualization");
|
||
|
|
||
|
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
|
||
|
|
||
|
public void execute() {
|
||
|
|
||
|
GeoportalDataViewerServiceAsync.Util.getInstance().getRelationshipsForTimeline(profileID, projectID,
|
||
|
new AsyncCallback<List<String>>() {
|
||
|
|
||
|
@Override
|
||
|
public void onSuccess(List<String> result) {
|
||
|
|
||
|
JSONArray toJsonArr = new JSONArray();
|
||
|
for (int i = 0; i < result.size(); i++) {
|
||
|
toJsonArr.set(i, JSONParser.parseStrict(result.get(i)));
|
||
|
}
|
||
|
|
||
|
instanceTimeline(timelineContainer.getElement().getId(), toJsonArr);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void onFailure(Throwable caught) {
|
||
|
// TODO Auto-generated method stub
|
||
|
|
||
|
}
|
||
|
});
|
||
|
|
||
|
};
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
public static native String instanceTimeline(String idDivContainer, JSONArray jsonItems) /*-{
|
||
|
console.log('showTimeline_instanceTimeline for json items: '
|
||
|
+ jsonItems);
|
||
|
|
||
|
console.log("showTimeline_template: " + $wnd.templateHandlebars);
|
||
|
|
||
|
// DOM element where the Timeline will be attached
|
||
|
var container = $doc.getElementById(idDivContainer);
|
||
|
|
||
|
console.log("showTimeline_container: " + container);
|
||
|
|
||
|
var myArray = $wnd.JSON.parse(jsonItems);
|
||
|
|
||
|
console.log("showTimeline_jsonItems: " + myArray);
|
||
|
|
||
|
var container = $doc.getElementById(idDivContainer);
|
||
|
|
||
|
// Create a DataSet (allows two way data-binding)
|
||
|
var items = new $wnd.vis.DataSet(myArray);
|
||
|
|
||
|
|
||
|
// Create a Timeline
|
||
|
var timeline = new $wnd.vis.Timeline(container, items,
|
||
|
$wnd.optionsTimeline);
|
||
|
|
||
|
}-*/;
|
||
|
}
|