geoportal-data-entry-app/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/edit/EditModeRecord.java

112 lines
3.2 KiB
Java

package org.gcube.portlets.user.geoportaldataentry.client.ui.edit;
import org.gcube.application.geoportalcommon.shared.products.BaseConcessioneDV;
import org.gcube.portlets.user.geoportaldataentry.client.ConstantsGeoPortalDataEntryApp.RECORD_TYPE;
import org.gcube.portlets.user.geoportaldataentry.client.GeoPortalDataEntryApp;
import org.gcube.portlets.user.geoportaldataentry.client.ui.edit.jseditor.MyJSONEditor;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.Random;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Widget;
/**
* The Class EditModeRecord.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Sep 17, 2021
*/
public class EditModeRecord extends Composite {
private static EditModeRecordUiBinder uiBinder = GWT.create(EditModeRecordUiBinder.class);
@UiField
FlowPanel rawUpdatePanel;
@UiField
FlowPanel filesUpdatePanel;
private BaseConcessioneDV selectedConcessione;
/**
* The Interface EditModeRecordUiBinder.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Sep 17, 2021
*/
interface EditModeRecordUiBinder extends UiBinder<Widget, EditModeRecord> {
}
/**
* Instantiates a new edits the mode record.
*
* @param selectedConcessione the selected concessione
* @param type the type
*/
public EditModeRecord(BaseConcessioneDV selectedConcessione, RECORD_TYPE type) {
initWidget(uiBinder.createAndBindUi(this));
this.selectedConcessione = selectedConcessione;
final FlowPanel fp = new FlowPanel();
fp.getElement().setId("jsoneditor"+Random.nextInt());
fp.setHeight("400px");
rawUpdatePanel.add(fp);
GeoPortalDataEntryApp.geoportalDataEntryService.getJSONRecord(selectedConcessione.getItemId(), type, new AsyncCallback<String>() {
@Override
public void onSuccess(String jsonData) {
GWT.log("Instance JSON Editor with: "+jsonData);
//jsonEditor = ExternalLib.instanceJSONEditor(fp.getElement().getId(), jsonData);
//String updated = ExternalLib.getUpdatedJSON(jsonEditor);
//JSONEditor constuctor = new JSONEditor(fp.getElement(),"{}");
final MyJSONEditor jsEditor = MyJSONEditor.init(fp.getElement().getId());
jsEditor.setName(selectedConcessione.getNome());
// JSONValue jsValue = JSONParser.parse(jsonData);
// JSONObject extraJSONObject = jsValue.isObject();
jsEditor.set(jsonData);
new Timer() {
@Override
public void run() {
jsEditor.setMode("tree");
}
}.schedule(200);
//GWT.log("Updated: "+updated.toString());
//org.gcube.portlets.user.geoportaldataentry.client.ui.utils.JSONEditor editor = JE.jsoneditor(fp.getElement(), jsonData);
//rawUpdatePanel.add(new Widget(editor));
}
@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
}
});
bindEvents();
}
/**
* Bind events.
*/
private void bindEvents() {
// TODO Auto-generated method stub
}
}