316 lines
8.9 KiB
Java
316 lines
8.9 KiB
Java
package org.gcube.portlets.user.td.informationwidget.client;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync;
|
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.TabResource;
|
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.TableData;
|
|
import org.gcube.portlets.user.td.informationwidget.client.util.InfoMessageBox;
|
|
import org.gcube.portlets.user.td.metadatawidget.client.TRMetadataAccordionPanel;
|
|
import org.gcube.portlets.user.td.metadatawidget.client.TableMetadataAccordionPanel;
|
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
|
|
|
|
import com.allen_sauer.gwt.log.client.Log;
|
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
|
import com.google.web.bindery.event.shared.EventBus;
|
|
import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode;
|
|
import com.sencha.gxt.core.client.util.Margins;
|
|
import com.sencha.gxt.widget.core.client.FramedPanel;
|
|
import com.sencha.gxt.widget.core.client.box.AlertMessageBox;
|
|
import com.sencha.gxt.widget.core.client.button.TextButton;
|
|
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
|
|
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
|
|
import com.sencha.gxt.widget.core.client.event.HideEvent;
|
|
import com.sencha.gxt.widget.core.client.event.HideEvent.HideHandler;
|
|
import com.sencha.gxt.widget.core.client.event.SelectEvent;
|
|
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
|
|
import com.sencha.gxt.widget.core.client.form.FieldLabel;
|
|
import com.sencha.gxt.widget.core.client.form.FieldSet;
|
|
import com.sencha.gxt.widget.core.client.form.TextArea;
|
|
import com.sencha.gxt.widget.core.client.form.TextField;
|
|
|
|
public class TabularResourceProperties extends FramedPanel {
|
|
protected String headingTitle;
|
|
protected HashMap<String, String> tabularResourcePropertiesMap;
|
|
protected VerticalLayoutContainer vl;
|
|
protected EventBus eventBus;
|
|
|
|
protected FieldSet trFieldSet;
|
|
protected FieldSet tableFieldSet;
|
|
|
|
protected TabResource tabResource;
|
|
protected TextField nameField;
|
|
protected TextArea descriptionField;
|
|
protected TextField agencyField;
|
|
protected TextField dateField;
|
|
protected TextArea rightField;
|
|
protected TextField typeField;
|
|
|
|
protected TRMetadataAccordionPanel trMetadataPanel;
|
|
protected VerticalLayoutContainer layoutTabularResource;
|
|
|
|
protected TextField tableTypeNameField;
|
|
protected TableMetadataAccordionPanel tableMetadataPanel;
|
|
protected VerticalLayoutContainer layoutTable;
|
|
protected TextButton saveButton;
|
|
|
|
public TabularResourceProperties(String name, EventBus eventBus) {
|
|
super();
|
|
setId(name);
|
|
this.eventBus = eventBus;
|
|
forceLayoutOnResize = true;
|
|
|
|
vl = new VerticalLayoutContainer();
|
|
vl.setScrollMode(ScrollMode.AUTO);
|
|
vl.setAdjustForScroll(true);
|
|
|
|
initInformation();
|
|
this.add(vl);
|
|
|
|
}
|
|
|
|
public void addTabularResource() {
|
|
trFieldSet = new FieldSet();
|
|
trFieldSet.setHeadingText("Tabular Resource");
|
|
trFieldSet.setCollapsible(true);
|
|
trFieldSet.setResize(true);
|
|
|
|
layoutTabularResource = new VerticalLayoutContainer();
|
|
trFieldSet.add(layoutTabularResource);
|
|
|
|
nameField = new TextField();
|
|
//nameField.setReadOnly(true);
|
|
nameField.setValue("");
|
|
layoutTabularResource.add(new FieldLabel(nameField, "Name"),
|
|
new VerticalLayoutData(1, -1));
|
|
|
|
descriptionField = new TextArea();
|
|
//descriptionField.setReadOnly(true);
|
|
descriptionField.setValue("");
|
|
layoutTabularResource.add(new FieldLabel(descriptionField,
|
|
"Description"), new VerticalLayoutData(1, -1));
|
|
|
|
agencyField = new TextField();
|
|
//agencyField.setReadOnly(true);
|
|
agencyField.setValue("");
|
|
layoutTabularResource.add(new FieldLabel(agencyField, "Agency"),
|
|
new VerticalLayoutData(1, -1));
|
|
|
|
dateField = new TextField();
|
|
dateField.setReadOnly(true);
|
|
dateField.setValue("");
|
|
layoutTabularResource.add(new FieldLabel(dateField, "Date"),
|
|
new VerticalLayoutData(1, -1));
|
|
|
|
typeField = new TextField();
|
|
typeField.setReadOnly(true);
|
|
typeField.setValue("");
|
|
layoutTabularResource.add(new FieldLabel(typeField, "Type"),
|
|
new VerticalLayoutData(1, -1));
|
|
|
|
rightField = new TextArea();
|
|
//rightField.setReadOnly(true);
|
|
rightField.setValue("");
|
|
layoutTabularResource.add(new FieldLabel(rightField, "Rights"),
|
|
new VerticalLayoutData(1, -1));
|
|
|
|
|
|
// Save Button
|
|
saveButton = new TextButton("Save");
|
|
SelectHandler saveHandler = new SelectHandler() {
|
|
|
|
public void onSelect(SelectEvent event) {
|
|
onSave();
|
|
|
|
}
|
|
};
|
|
saveButton.addSelectHandler(saveHandler);
|
|
layoutTabularResource.add(saveButton,
|
|
new VerticalLayoutData(-1, -1,new Margins(2)));
|
|
|
|
vl.add(trFieldSet);
|
|
|
|
}
|
|
|
|
protected void updateTabularResource(TabResource tabResource) {
|
|
this.tabResource=tabResource;
|
|
Log.debug(tabResource.toString());
|
|
nameField.setValue(tabResource.getName());
|
|
descriptionField.setValue(tabResource.getDescription());
|
|
agencyField.setValue(tabResource.getAgency());
|
|
dateField.setValue(tabResource.getDate());
|
|
typeField.setValue(tabResource.getTrId().getTabularResourceType());
|
|
rightField.setValue(tabResource.getRight());
|
|
|
|
}
|
|
|
|
public void addTable() {
|
|
tableFieldSet = new FieldSet();
|
|
tableFieldSet.setHeadingText("Table");
|
|
tableFieldSet.setCollapsible(true);
|
|
tableFieldSet.setResize(true);
|
|
|
|
layoutTable = new VerticalLayoutContainer();
|
|
|
|
tableFieldSet.add(layoutTable);
|
|
|
|
tableTypeNameField = new TextField();
|
|
tableTypeNameField.setReadOnly(true);
|
|
tableTypeNameField.setValue("");
|
|
layoutTable.add(new FieldLabel(tableTypeNameField, "Type"),
|
|
new VerticalLayoutData(1, -1));
|
|
|
|
vl.add(tableFieldSet);
|
|
}
|
|
|
|
protected void updateTable(TableData tableData) {
|
|
tableTypeNameField.setValue(tableData.getTypeName());
|
|
if (tableMetadataPanel != null) {
|
|
tableFieldSet.remove(layoutTable);
|
|
layoutTable.remove(tableMetadataPanel);
|
|
}
|
|
TRId trId = tableData.getTrId();
|
|
|
|
tableMetadataPanel = new TableMetadataAccordionPanel(
|
|
"TableInformation", trId, eventBus);
|
|
layoutTable.add(tableMetadataPanel, new VerticalLayoutData(-1, -1));
|
|
tableFieldSet.add(layoutTable);
|
|
}
|
|
|
|
public void update() {
|
|
TDGWTServiceAsync.INSTANCE
|
|
.getTabResourceInformation(new AsyncCallback<TabResource>() {
|
|
|
|
public void onSuccess(TabResource result) {
|
|
updateTabularResource(result);
|
|
Log.info("Retrived TR:" + result.getId());
|
|
getLastTable(result.getTrId());
|
|
}
|
|
|
|
public void onFailure(Throwable caught) {
|
|
AlertMessageBox d = new AlertMessageBox("Error",
|
|
"Error retrienving properties: "
|
|
+ caught.getLocalizedMessage());
|
|
d.addHideHandler(new HideHandler() {
|
|
|
|
public void onHide(HideEvent event) {
|
|
//
|
|
|
|
}
|
|
|
|
});
|
|
d.show();
|
|
|
|
}
|
|
|
|
});
|
|
}
|
|
|
|
protected void getLastTable(TRId trId) {
|
|
TDGWTServiceAsync.INSTANCE.getLastTable(trId,
|
|
new AsyncCallback<TableData>() {
|
|
|
|
public void onSuccess(TableData result) {
|
|
updateTable(result);
|
|
Log.info("Retrived LastTable:" + result.getName());
|
|
|
|
}
|
|
|
|
public void onFailure(Throwable caught) {
|
|
AlertMessageBox d = new AlertMessageBox("Error",
|
|
"Error retrienving Last Table: "
|
|
+ caught.getLocalizedMessage());
|
|
d.addHideHandler(new HideHandler() {
|
|
|
|
public void onHide(HideEvent event) {
|
|
//
|
|
|
|
}
|
|
|
|
});
|
|
d.show();
|
|
|
|
}
|
|
|
|
});
|
|
}
|
|
|
|
public void initInformation() {
|
|
addTabularResource();
|
|
addTable();
|
|
update();
|
|
}
|
|
|
|
|
|
protected void onSave(){
|
|
if(nameField.getValue()==null || nameField.getValue().isEmpty() ){
|
|
alert("Attention","Fill name field");
|
|
return;
|
|
}
|
|
|
|
if(descriptionField.getValue()==null || descriptionField.getValue().isEmpty() ){
|
|
alert("Attention","Fill description field");
|
|
return;
|
|
}
|
|
|
|
if(rightField.getValue()==null || rightField.getValue().isEmpty() ){
|
|
alert("Attention","Fill rights field");
|
|
return;
|
|
}
|
|
|
|
tabResource.setName(nameField.getValue());
|
|
tabResource.setDescription(descriptionField.getValue());
|
|
tabResource.setAgency(agencyField.getValue());
|
|
tabResource.setRight(rightField.getValue());
|
|
|
|
|
|
|
|
TDGWTServiceAsync.INSTANCE.setTabResourceInformation(tabResource,
|
|
new AsyncCallback<Void>() {
|
|
|
|
public void onFailure(Throwable caught) {
|
|
Log.debug("Error Setting Tabular Resoruce Properties: "
|
|
+ caught.getLocalizedMessage());
|
|
alert("Error",
|
|
"Error setting tabular resource properties");
|
|
|
|
}
|
|
|
|
public void onSuccess(Void result) {
|
|
Log.debug("Tabular Resource properties are set: "
|
|
+ tabResource);
|
|
info("Proprerties",
|
|
"Tabular Resource properties are set");
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
private void alert(String title, String message) {
|
|
final AlertMessageBox d = new AlertMessageBox(title, message);
|
|
d.addHideHandler(new HideHandler() {
|
|
|
|
public void onHide(HideEvent event) {
|
|
|
|
}
|
|
});
|
|
d.show();
|
|
|
|
}
|
|
|
|
private void info(String title, String message) {
|
|
final InfoMessageBox d = new InfoMessageBox(title, message);
|
|
d.addHideHandler(new HideHandler() {
|
|
|
|
public void onHide(HideEvent event) {
|
|
|
|
}
|
|
});
|
|
d.show();
|
|
|
|
}
|
|
|
|
}
|