Fixed ColumnType Tab behavior

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-column-widget@90977 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2014-02-06 13:22:32 +00:00
parent dd342ac3a2
commit 155ed57c5a
1 changed files with 74 additions and 72 deletions

View File

@ -29,6 +29,7 @@ import com.sencha.gxt.data.client.loader.RpcProxy;
import com.sencha.gxt.data.shared.LabelProvider;
import com.sencha.gxt.data.shared.ListStore;
import com.sencha.gxt.data.shared.loader.ListLoadConfig;
import com.sencha.gxt.data.shared.loader.ListLoadConfigBean;
import com.sencha.gxt.data.shared.loader.ListLoadResult;
import com.sencha.gxt.data.shared.loader.ListLoadResultBean;
import com.sencha.gxt.data.shared.loader.ListLoader;
@ -70,16 +71,17 @@ public class ChangeColumnTypePanel extends FramedPanel {
this.trId = trId;
this.columnName = columnName;
this.eventBus = eventBus;
Log.debug("Create ChangeColumnTypePanel(): ["+ trId.toString()+" columnName: "+columnName+"]");
//Column Data
Log.debug("Create ChangeColumnTypePanel(): [" + trId.toString()
+ " columnName: " + columnName + "]");
// Column Data
ColumnDataProperties propsColumnData = GWT
.create(ColumnDataProperties.class);
ListStore<ColumnData> storeCombo = new ListStore<ColumnData>(
propsColumnData.id());
Log.trace("StoreCombo created");
RpcProxy<ListLoadConfig, ListLoadResult<ColumnData>> proxy = new RpcProxy<ListLoadConfig, ListLoadResult<ColumnData>>() {
public void load(ListLoadConfig loadConfig,
@ -87,10 +89,17 @@ public class ChangeColumnTypePanel extends FramedPanel {
loadData(loadConfig, callback);
}
};
loader = new ListLoader<ListLoadConfig, ListLoadResult<ColumnData>>(
proxy);
//loader.setRemoteSort(false);
proxy) {
@Override
protected ListLoadConfig newLoadConfig() {
return (ListLoadConfig) new ListLoadConfigBean();
}
};
// loader.setRemoteSort(false);
loader.addLoadHandler(new LoadResultListStoreBinding<ListLoadConfig, ColumnData, ListLoadResult<ColumnData>>(
storeCombo));
Log.trace("LoaderCombo created");
@ -109,16 +118,15 @@ public class ChangeColumnTypePanel extends FramedPanel {
};
Log.trace("Combo ColumnData created");
//addHandlersForEventObservation(comboColumn, propsColumnData.label());
// addHandlersForEventObservation(comboColumn, propsColumnData.label());
addHandlersForComboColumn(propsColumnData.label());
comboColumn.setLoader(loader);
comboColumn.setEmptyText("Select a column...");
comboColumn.setWidth(150);
comboColumn.setTypeAhead(false);
comboColumn.setEditable(false);
comboColumn.setTriggerAction(TriggerAction.ALL);
// comboColumnTypeCode
ColumnTypeCodeProperties propsColumnTypeCode = GWT
@ -177,10 +185,10 @@ public class ChangeColumnTypePanel extends FramedPanel {
comboAttributeType.setTypeAhead(true);
comboAttributeType.setTriggerAction(TriggerAction.ALL);
comboAttributeTypeLabel = new FieldLabel(comboAttributeType, "Attribute Type");
comboAttributeTypeLabel = new FieldLabel(comboAttributeType,
"Attribute Type");
comboAttributeTypeLabel.setVisible(false);
VerticalLayoutContainer v = new VerticalLayoutContainer();
v.add(new FieldLabel(comboColumn, "Column"), new VerticalLayoutData(1,
-1));
@ -188,40 +196,31 @@ public class ChangeColumnTypePanel extends FramedPanel {
new VerticalLayoutData(1, -1));
v.add(comboMeasureTypeLabel, new VerticalLayoutData(1, -1));
v.add(comboAttributeTypeLabel, new VerticalLayoutData(1, -1));
v.add(new TextButton("Change"), new VerticalLayoutData(-1, -1, new Margins(10,0,10,0)));
v.add(new TextButton("Change"), new VerticalLayoutData(-1, -1,
new Margins(10, 0, 10, 0)));
add(v, new VerticalLayoutData(-1, -1, new Margins()));
//addButton();
// addButton();
}
protected void addHandlersForComboColumn(
final LabelProvider<ColumnData> labelProvider) {
comboColumn
.addSelectionHandler(new SelectionHandler<ColumnData>() {
public void onSelection(
SelectionEvent<ColumnData> event) {
Info.display(
"Column Type Selected",
"You selected "
+ (event.getSelectedItem() == null ? "nothing"
: labelProvider.getLabel(event
.getSelectedItem())
+ "!"));
Log.debug("ComboColumn selected: "
+ event.getSelectedItem());
ColumnData columnType = event
.getSelectedItem();
//updateColumnType(columnType.getCode());
}
final LabelProvider<ColumnData> labelProvider) {
comboColumn.addSelectionHandler(new SelectionHandler<ColumnData>() {
public void onSelection(SelectionEvent<ColumnData> event) {
Info.display(
"Column Type Selected",
"You selected "
+ (event.getSelectedItem() == null ? "nothing"
: labelProvider.getLabel(event
.getSelectedItem()) + "!"));
Log.debug("ComboColumn selected: " + event.getSelectedItem());
ColumnData columnData = event.getSelectedItem();
updateComboStatus(columnData);
}
});
});
}
protected void addHandlersForComboColumnTypeCode(
final LabelProvider<ColumnTypeCodeElement> labelProvider) {
comboColumnTypeCode
@ -267,7 +266,7 @@ public class ChangeColumnTypePanel extends FramedPanel {
});
}
protected void addHandlersForComboAttributeType(
final LabelProvider<ColumnDataTypeElement> labelProvider) {
comboAttributeType
@ -292,7 +291,7 @@ public class ChangeColumnTypePanel extends FramedPanel {
}
protected void updateColumnType(ColumnTypeCode type) {
Log.debug("Update ColumnTyepeCod"+type.toString());
Log.debug("Update ColumnTypeCode " + type.toString());
if (type == ColumnTypeCode.MEASURE) {
comboMeasureTypeLabel.setVisible(true);
comboAttributeTypeLabel.setVisible(false);
@ -304,19 +303,18 @@ public class ChangeColumnTypePanel extends FramedPanel {
comboMeasureTypeLabel.setVisible(false);
comboAttributeTypeLabel.setVisible(false);
}
}
}
protected void updateMeasureType(ColumnDataType type) {
}
protected void updateAttributeType(ColumnDataType type) {
}
protected void loadData(ListLoadConfig loadConfig,
final AsyncCallback<ListLoadResult<ColumnData>> callback) {
TDGWTServiceAsync.INSTANCE.getColumns(trId,
@ -325,15 +323,16 @@ public class ChangeColumnTypePanel extends FramedPanel {
public void onFailure(Throwable caught) {
Log.error("load combo failure:"
+ caught.getLocalizedMessage());
AlertMessageBox d = new AlertMessageBox("Error", "Error retrieving columns of tabular resource:"+trId.getId());
d.addHideHandler(new HideHandler() {
public void onHide(HideEvent event) {
}
});
d.show();
AlertMessageBox d = new AlertMessageBox("Error",
"Error retrieving columns of tabular resource:"
+ trId.getId());
d.addHideHandler(new HideHandler() {
public void onHide(HideEvent event) {
}
});
d.show();
callback.onFailure(caught);
}
@ -348,41 +347,44 @@ public class ChangeColumnTypePanel extends FramedPanel {
});
}
protected void setComboStatus(ArrayList<ColumnData> result){
Log.debug("ColumnName:"+columnName);
protected void setComboStatus(ArrayList<ColumnData> result) {
Log.debug("ColumnName:" + columnName);
if (columnName != null) {
for (ColumnData cd : result) {
Log.debug("ColumnData name:"+cd.getName());
Log.debug("ColumnData name:" + cd.getName());
if (cd.getName().compareTo(columnName) == 0) {
updateComboStatus(cd);
}
}
}
}
protected void updateComboStatus(ColumnData cd){
Log.debug("ColumnData: "+cd.toString());
protected void updateComboStatus(ColumnData cd) {
Log.debug("ColumnData: " + cd.toString());
comboColumn.setValue(cd);
comboColumnTypeCode.setValue(ColumnTypeCodeStore.selectedElement(cd.getTypeCode()));
ColumnTypeCode type=ColumnTypeCodeStore.selected(cd.getTypeCode());
comboColumnTypeCode.setValue(ColumnTypeCodeStore.selectedElement(cd
.getTypeCode()));
ColumnTypeCode type = ColumnTypeCodeStore.selected(cd.getTypeCode());
updateColumnType(type);
if (type == ColumnTypeCode.MEASURE) {
comboMeasureType.setValue(ColumnDataTypeStore.selectedMeasureElement(cd.getDataTypeName()));
comboMeasureType.setValue(ColumnDataTypeStore
.selectedMeasureElement(cd.getDataTypeName()));
} else {
if (type == ColumnTypeCode.ATTRIBUTE) {
comboMeasureType.setValue(ColumnDataTypeStore.selectedMeasureElement(cd.getDataTypeName()));
comboAttributeType.setValue(ColumnDataTypeStore
.selectedAttributeElement(cd.getDataTypeName()));
} else {
}
}
}
public void update(TRId trId, String columnName){
this.trId=trId;
this.columnName=columnName;
public void update(TRId trId, String columnName) {
this.trId = trId;
this.columnName = columnName;
loader.load();
}
}