tabular-data-information-wi.../src/main/java/org/gcube/portlets/user/td/informationwidget/client/TabularResourceProperties.java

184 lines
5.0 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.TabResource;
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.widget.core.client.ContentPanel;
import com.sencha.gxt.widget.core.client.FramedPanel;
import com.sencha.gxt.widget.core.client.box.AlertMessageBox;
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.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 ContentPanel {
protected String headingTitle;
protected HashMap<String, String> tabularResourcePropertiesMap;
protected VerticalLayoutContainer vl;
protected EventBus eventBus;
protected FieldSet fieldSet;
protected TextField nameField;
protected TextArea descriptionField;
protected TextField agencyField;
protected TextField dateField;
protected TextArea rightField;
public TabularResourceProperties(String name, EventBus eventBus) {
super();
setId(name);
this.eventBus = eventBus;
initInformation();
FramedPanel panel = new FramedPanel();
panel.setHeaderVisible(false);
panel.setBodyStyle("background: none; padding: 2px; min-width:310px;");
vl = new VerticalLayoutContainer();
panel.add(vl);
this.add(panel);
}
public void addTabularResource(TabResource tabResource) {
fieldSet = new FieldSet();
fieldSet.setHeadingText("Tabular Resource");
fieldSet.setCollapsible(true);
VerticalLayoutContainer layoutTabularResource = new VerticalLayoutContainer();
fieldSet.add(layoutTabularResource);
nameField = new TextField();
nameField.setReadOnly(true);
nameField.setValue(tabResource.getName());
layoutTabularResource.add(new FieldLabel(nameField, "Name"),
new VerticalLayoutData(1, -1));
descriptionField = new TextArea();
descriptionField.setReadOnly(true);
descriptionField.setValue(tabResource.getDescription());
layoutTabularResource.add(new FieldLabel(descriptionField,
"Description"), new VerticalLayoutData(1, -1));
agencyField = new TextField();
agencyField.setReadOnly(true);
agencyField.setValue(tabResource.getAgency());
layoutTabularResource.add(new FieldLabel(agencyField, "Agency"),
new VerticalLayoutData(1, -1));
dateField = new TextField();
dateField.setReadOnly(true);
dateField.setValue(tabResource.getDate());
layoutTabularResource.add(new FieldLabel(dateField, "Date"),
new VerticalLayoutData(1, -1));
rightField = new TextArea();
rightField.setReadOnly(true);
rightField.setValue(tabResource.getRight());
layoutTabularResource.add(new FieldLabel(rightField, "Rights"),
new VerticalLayoutData(1, -1));
vl.add(fieldSet);
}
protected void updateTabularResource(TabResource tabResource) {
nameField.setValue(tabResource.getName());
descriptionField.setValue(tabResource.getDescription());
agencyField.setValue(tabResource.getAgency());
dateField.setValue(tabResource.getDate());
rightField.setValue(tabResource.getRight());
}
public void addTable(TabResource tabResource) {
FieldSet fieldSet = new FieldSet();
fieldSet.setHeadingText("Table");
fieldSet.setCollapsible(true);
VerticalLayoutContainer layoutTabularResource = new VerticalLayoutContainer();
fieldSet.add(layoutTabularResource);
vl.add(fieldSet);
}
public void update(){
TDGWTServiceAsync.INSTANCE
.getTabResourceInformation(new AsyncCallback<TabResource>() {
@Override
public void onSuccess(TabResource result) {
updateTabularResource(result);
Log.info("Retrived TR:" + result.getId());
}
@Override
public void onFailure(Throwable caught) {
AlertMessageBox d = new AlertMessageBox("Error",
"Error retrienving properties: "
+ caught.getLocalizedMessage());
d.addHideHandler(new HideHandler() {
@Override
public void onHide(HideEvent event) {
//
}
});
d.show();
}
});
}
public void initInformation(){
TDGWTServiceAsync.INSTANCE
.getTabResourceInformation(new AsyncCallback<TabResource>() {
@Override
public void onSuccess(TabResource result) {
addTabularResource(result);
Log.info("Retrived TR:" + result.getId());
}
@Override
public void onFailure(Throwable caught) {
AlertMessageBox d = new AlertMessageBox("Error",
"Error retrienving properties: "
+ caught.getLocalizedMessage());
d.addHideHandler(new HideHandler() {
@Override
public void onHide(HideEvent event) {
//
}
});
d.show();
}
});
}
}