From 915b0753c3afbaf4e35eb3cd2fb70973a98827f7 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Tue, 8 Apr 2014 16:05:58 +0000 Subject: [PATCH] Minor Update git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-column-widget@94583 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../user/td/columnwidget/ColumnWidget.gwt.xml | 2 +- .../client/ChangeColumnTypePanel.java | 181 +++++++++++++++--- .../properties/LocaleTypeProperties.java | 25 +++ .../client/store/LocaleTypeElement.java | 49 +++++ .../user/td/columnwidget/ColumnWidget.gwt.xml | 3 +- 5 files changed, 227 insertions(+), 33 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/td/columnwidget/client/properties/LocaleTypeProperties.java create mode 100644 src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/LocaleTypeElement.java diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/ColumnWidget.gwt.xml b/src/main/java/org/gcube/portlets/user/td/columnwidget/ColumnWidget.gwt.xml index 282f68f..2a14676 100644 --- a/src/main/java/org/gcube/portlets/user/td/columnwidget/ColumnWidget.gwt.xml +++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/ColumnWidget.gwt.xml @@ -2,7 +2,7 @@ - + diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/ChangeColumnTypePanel.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/ChangeColumnTypePanel.java index 5d33f1c..f92321d 100644 --- a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/ChangeColumnTypePanel.java +++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/ChangeColumnTypePanel.java @@ -2,18 +2,20 @@ package org.gcube.portlets.user.td.columnwidget.client; import java.util.ArrayList; -import org.gcube.portlets.user.td.columnwidget.client.dimension.CodelistSelectionListener; import org.gcube.portlets.user.td.columnwidget.client.dimension.CodelistSelectionDialog; +import org.gcube.portlets.user.td.columnwidget.client.dimension.CodelistSelectionListener; import org.gcube.portlets.user.td.columnwidget.client.progress.ChangeColumnTypeProgressDialog; import org.gcube.portlets.user.td.columnwidget.client.properties.ColumnDataProperties; import org.gcube.portlets.user.td.columnwidget.client.properties.ColumnDataTypeProperties; import org.gcube.portlets.user.td.columnwidget.client.properties.ColumnTypeCodeProperties; +import org.gcube.portlets.user.td.columnwidget.client.properties.LocaleTypeProperties; import org.gcube.portlets.user.td.columnwidget.client.properties.TabResourceProperties; import org.gcube.portlets.user.td.columnwidget.client.properties.TimeDimensionTypeProperties; import org.gcube.portlets.user.td.columnwidget.client.store.ColumnDataTypeElement; import org.gcube.portlets.user.td.columnwidget.client.store.ColumnDataTypeStore; import org.gcube.portlets.user.td.columnwidget.client.store.ColumnTypeCodeElement; import org.gcube.portlets.user.td.columnwidget.client.store.ColumnTypeCodeStore; +import org.gcube.portlets.user.td.columnwidget.client.store.LocaleTypeElement; import org.gcube.portlets.user.td.columnwidget.client.store.TimeDimensionTypeElement; import org.gcube.portlets.user.td.columnwidget.client.store.TimeDimensionTypeStore; import org.gcube.portlets.user.td.columnwidget.client.utils.UtilsGXT3; @@ -96,6 +98,10 @@ public class ChangeColumnTypePanel extends FramedPanel implements protected ComboBox comboTimeDimensionType = null; protected FieldLabel comboTimeDimensionTypeLabel; + protected ComboBox comboLocaleType = null; + protected FieldLabel comboLocaleTypeLabel; + protected ListStore storeComboLocaleType; + protected ListLoader> loader; protected TextButton change; @@ -113,11 +119,9 @@ public class ChangeColumnTypePanel extends FramedPanel implements this.eventBus = eventBus; create(); } - - - protected void create(){ - - + + protected void create() { + Log.debug("Create ChangeColumnTypePanel(): [" + trId.toString() + " columnName: " + columnName + "]"); @@ -234,6 +238,35 @@ public class ChangeColumnTypePanel extends FramedPanel implements comboAttributeTypeLabel = new FieldLabel(comboAttributeType, "Attribute Type"); + // comboLocaleType + LocaleTypeProperties propsLocaleType = GWT + .create(LocaleTypeProperties.class); + storeComboLocaleType = new ListStore( + propsLocaleType.id()); + + comboLocaleType = new ComboBox(storeComboLocaleType, + propsLocaleType.label()) { + + protected void onAfterFirstAttach() { + super.onAfterFirstAttach(); + Scheduler.get().scheduleDeferred(new ScheduledCommand() { + public void execute() { + retriveLocales(); + } + }); + } + }; + Log.trace("ComboLocaleType created"); + + addHandlersForComboLocaleType(propsLocaleType.label()); + + comboLocaleType.setEmptyText("Select a locale type..."); + comboLocaleType.setWidth(191); + comboLocaleType.setTypeAhead(true); + comboLocaleType.setTriggerAction(TriggerAction.ALL); + + comboLocaleTypeLabel = new FieldLabel(comboLocaleType, "Locale"); + // comboDimensionType TabResourceProperties propsDimensionType = GWT .create(TabResourceProperties.class); @@ -280,25 +313,25 @@ public class ChangeColumnTypePanel extends FramedPanel implements propsTimeDimensionType.id()); storeComboTimeDimensionType.addAll(TimeDimensionTypeStore .getTimeDimensionType()); - + /* - ListView view = new ListView(storeComboTimeDimensionType, - propsTimeDimensionType.viewLabel()); - view.setWidth("150px"); - */ + * ListView view = new + * ListView(storeComboTimeDimensionType, + * propsTimeDimensionType.viewLabel()); view.setWidth("150px"); + */ comboTimeDimensionType = new ComboBox( storeComboTimeDimensionType, propsTimeDimensionType.label()); Log.trace("ComboTimeDimensionType created"); addHandlersForComboTimeDimensionType(propsTimeDimensionType.label()); - - + comboTimeDimensionType.setEmptyText("Select a time dimension type..."); comboTimeDimensionType.setWidth(191); comboTimeDimensionType.setTypeAhead(true); comboTimeDimensionType.setTriggerAction(TriggerAction.ALL); - //comboTimeDimensionType.getListView().getElement().applyStyles("width:170px;"); - + // comboTimeDimensionType.getListView().getElement().applyStyles("width:170px;"); + comboTimeDimensionTypeLabel = new FieldLabel(comboTimeDimensionType, "Time Type"); @@ -318,6 +351,8 @@ public class ChangeColumnTypePanel extends FramedPanel implements -1, new Margins(1))); v.add(new FieldLabel(comboColumnTypeCode, "Column Type"), new VerticalLayoutData(1, -1, new Margins(1))); + v.add(comboLocaleTypeLabel, new VerticalLayoutData(1, -1, + new Margins(1))); v.add(comboMeasureTypeLabel, new VerticalLayoutData(1, -1, new Margins( 1))); v.add(comboAttributeTypeLabel, new VerticalLayoutData(1, -1, @@ -336,6 +371,7 @@ public class ChangeColumnTypePanel extends FramedPanel implements comboDimensionTypeLabel.setVisible(false); comboColumnReferenceTypeLabel.setVisible(false); comboTimeDimensionTypeLabel.setVisible(false); + comboLocaleTypeLabel.setVisible(false); // addButton(); } @@ -427,6 +463,28 @@ public class ChangeColumnTypePanel extends FramedPanel implements }); } + protected void addHandlersForComboLocaleType( + final LabelProvider labelProvider) { + comboLocaleType + .addSelectionHandler(new SelectionHandler() { + public void onSelection( + SelectionEvent event) { + Info.display( + "Locale Type Selected", + "You selected " + + (event.getSelectedItem() == null ? "nothing" + : labelProvider.getLabel(event + .getSelectedItem()) + + "!")); + Log.debug("ComboLocaleType selected: " + + event.getSelectedItem()); + LocaleTypeElement localeType = event.getSelectedItem(); + updateLocaleType(localeType); + } + + }); + } + protected void addHandlersForComboDimensionType( final LabelProvider labelProvider) { @@ -491,8 +549,17 @@ public class ChangeColumnTypePanel extends FramedPanel implements protected void updateColumnType(ColumnTypeCode type) { Log.debug("Update ColumnTypeCode " + type.toString()); - switch (type){ + switch (type) { + case CODENAME: + comboLocaleTypeLabel.setVisible(true); + comboMeasureTypeLabel.setVisible(false); + comboAttributeTypeLabel.setVisible(false); + comboDimensionTypeLabel.setVisible(false); + comboColumnReferenceTypeLabel.setVisible(false); + comboTimeDimensionTypeLabel.setVisible(false); + break; case ATTRIBUTE: + comboLocaleTypeLabel.setVisible(false); comboMeasureTypeLabel.setVisible(false); comboAttributeTypeLabel.setVisible(true); comboDimensionTypeLabel.setVisible(false); @@ -500,6 +567,7 @@ public class ChangeColumnTypePanel extends FramedPanel implements comboTimeDimensionTypeLabel.setVisible(false); break; case DIMENSION: + comboLocaleTypeLabel.setVisible(false); comboMeasureTypeLabel.setVisible(false); comboAttributeTypeLabel.setVisible(false); comboDimensionTypeLabel.setVisible(true); @@ -507,6 +575,7 @@ public class ChangeColumnTypePanel extends FramedPanel implements comboTimeDimensionTypeLabel.setVisible(false); break; case MEASURE: + comboLocaleTypeLabel.setVisible(false); comboMeasureTypeLabel.setVisible(true); comboAttributeTypeLabel.setVisible(false); comboDimensionTypeLabel.setVisible(false); @@ -514,6 +583,7 @@ public class ChangeColumnTypePanel extends FramedPanel implements comboTimeDimensionTypeLabel.setVisible(false); break; case TIMEDIMENSION: + comboLocaleTypeLabel.setVisible(false); comboMeasureTypeLabel.setVisible(false); comboAttributeTypeLabel.setVisible(false); comboDimensionTypeLabel.setVisible(false); @@ -521,6 +591,7 @@ public class ChangeColumnTypePanel extends FramedPanel implements comboTimeDimensionTypeLabel.setVisible(true); break; default: + comboLocaleTypeLabel.setVisible(false); comboMeasureTypeLabel.setVisible(false); comboAttributeTypeLabel.setVisible(false); comboDimensionTypeLabel.setVisible(false); @@ -528,7 +599,7 @@ public class ChangeColumnTypePanel extends FramedPanel implements comboTimeDimensionTypeLabel.setVisible(false); break; } - + forceLayout(); } @@ -540,8 +611,12 @@ public class ChangeColumnTypePanel extends FramedPanel implements } + protected void updateLocaleType(LocaleTypeElement type) { + + } + protected void updateTimeDimensionType(TimeDimensionType type) { - + } protected void loadData(ListLoadConfig loadConfig, @@ -576,7 +651,7 @@ public class ChangeColumnTypePanel extends FramedPanel implements for (ColumnData cd : result) { Log.debug("ColumnData name:" + cd.getName()); if (cd.getName().compareTo(columnName) == 0) { - + updateComboStatus(cd); } } @@ -650,11 +725,13 @@ public class ChangeColumnTypePanel extends FramedPanel implements .setColumnDataTypeTarget(dataType); callChangeColumnType(); } else { - UtilsGXT3.alert("Attention", "Column data type not selected!"); + UtilsGXT3.alert("Attention", + "Column data type not selected!"); } } else { - UtilsGXT3.alert("Attention", "Column data type not selected!"); + UtilsGXT3.alert("Attention", + "Column data type not selected!"); } break; case ATTRIBUTE: @@ -669,10 +746,12 @@ public class ChangeColumnTypePanel extends FramedPanel implements .setColumnDataTypeTarget(dataType); callChangeColumnType(); } else { - UtilsGXT3.alert("Attention", "Column data type not selected!"); + UtilsGXT3.alert("Attention", + "Column data type not selected!"); } } else { - UtilsGXT3.alert("Attention", "Column data type not selected!"); + UtilsGXT3.alert("Attention", + "Column data type not selected!"); } break; case CODE: @@ -681,7 +760,15 @@ public class ChangeColumnTypePanel extends FramedPanel implements break; case CODENAME: changeColumnTypeSession.setColumnTypeCodeTarget(type); - callChangeColumnType(); + LocaleTypeElement locale = comboLocaleType + .getCurrentValue(); + if (locale != null) { + changeColumnTypeSession.setLocale(locale.getLocaleName()); + callChangeColumnType(); + } else { + UtilsGXT3.alert("Attention", + "No locale selected!"); + } break; case CODEDESCRIPTION: changeColumnTypeSession.setColumnTypeCodeTarget(type); @@ -700,7 +787,8 @@ public class ChangeColumnTypePanel extends FramedPanel implements .setCodelistColumnReference(columnReference); callChangeColumnType(); } else { - UtilsGXT3.alert("Attention", "No column reference selected!"); + UtilsGXT3.alert("Attention", + "No column reference selected!"); } break; case TIMEDIMENSION: @@ -720,11 +808,13 @@ public class ChangeColumnTypePanel extends FramedPanel implements } } else { - UtilsGXT3.alert("Attention", "Time Dimension type not selected!"); + UtilsGXT3.alert("Attention", + "Time Dimension type not selected!"); } break; default: - UtilsGXT3.alert("Attention", "This column type is not supported now!"); + UtilsGXT3.alert("Attention", + "This column type is not supported now!"); break; } } else { @@ -741,8 +831,9 @@ public class ChangeColumnTypePanel extends FramedPanel implements public void onFailure(Throwable caught) { Log.debug("Change Column Type Error: " + caught.getLocalizedMessage()); - UtilsGXT3.alert("Change Column Type Error ", - "Error in invocation of change column type operation!"); + UtilsGXT3 + .alert("Change Column Type Error ", + "Error in invocation of change column type operation!"); } @@ -755,8 +846,6 @@ public class ChangeColumnTypePanel extends FramedPanel implements } - - protected void callDialogCodelistSelection() { CodelistSelectionDialog dialogCodelistSelection = new CodelistSelectionDialog( eventBus); @@ -810,4 +899,34 @@ public class ChangeColumnTypePanel extends FramedPanel implements } + protected void retriveLocales() { + TDGWTServiceAsync.INSTANCE + .getLocales(new AsyncCallback>() { + + @Override + public void onFailure(Throwable caught) { + Log.debug(caught.getLocalizedMessage()); + UtilsGXT3.alert("Error retrieving locales", + caught.getLocalizedMessage()); + + } + + @Override + public void onSuccess(ArrayList result) { + storeComboLocaleType.clear(); + ArrayList locales = new ArrayList(); + LocaleTypeElement locale; + for (String local : result) { + locale = new LocaleTypeElement(local); + locales.add(locale); + } + storeComboLocaleType.addAll(locales); + storeComboLocaleType.commitChanges(); + // comboColumnReferenceTypeLabel.setVisible(true); + + } + }); + + } + } diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/properties/LocaleTypeProperties.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/properties/LocaleTypeProperties.java new file mode 100644 index 0000000..fdfe3a4 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/properties/LocaleTypeProperties.java @@ -0,0 +1,25 @@ +package org.gcube.portlets.user.td.columnwidget.client.properties; + +import org.gcube.portlets.user.td.columnwidget.client.store.LocaleTypeElement; + +import com.google.gwt.editor.client.Editor.Path; +import com.sencha.gxt.data.shared.LabelProvider; +import com.sencha.gxt.data.shared.ModelKeyProvider; +import com.sencha.gxt.data.shared.PropertyAccess; + +/** + * + * @author "Giancarlo Panichi" + * g.panichi@isti.cnr.it + * + */ +public interface LocaleTypeProperties extends + PropertyAccess { + + @Path("id") + ModelKeyProvider id(); + + LabelProvider label(); + + +} diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/LocaleTypeElement.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/LocaleTypeElement.java new file mode 100644 index 0000000..e7c715b --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/LocaleTypeElement.java @@ -0,0 +1,49 @@ +package org.gcube.portlets.user.td.columnwidget.client.store; + +import java.io.Serializable; + +/** + * + * @author "Giancarlo Panichi" g.panichi@isti.cnr.it + * + */ +public class LocaleTypeElement implements Serializable { + + private static final long serialVersionUID = 1L; + protected String localeName; + + public LocaleTypeElement() { + } + + public LocaleTypeElement(String localeName){ + this.localeName=localeName; + } + + + public String getLocaleName() { + return localeName; + } + + public void setLocaleName(String localeName) { + this.localeName = localeName; + } + + public String id(){ + return localeName; + } + + public String label(){ + return localeName; + } + + + + @Override + public String toString() { + return "LocaleTypeElement [localeName=" + localeName + "]"; + } + + + +} diff --git a/src/main/resources/org/gcube/portlets/user/td/columnwidget/ColumnWidget.gwt.xml b/src/main/resources/org/gcube/portlets/user/td/columnwidget/ColumnWidget.gwt.xml index 5766e80..257b43f 100644 --- a/src/main/resources/org/gcube/portlets/user/td/columnwidget/ColumnWidget.gwt.xml +++ b/src/main/resources/org/gcube/portlets/user/td/columnwidget/ColumnWidget.gwt.xml @@ -2,7 +2,8 @@ - + +