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
This commit is contained in:
Giancarlo Panichi 2014-04-08 16:05:58 +00:00
parent cc4a2f71fe
commit 915b0753c3
5 changed files with 227 additions and 33 deletions

View File

@ -2,7 +2,7 @@
<module rename-to='ColumnWidget'>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User' />
<!-- We need the JUnit module in the main module, -->
<!-- otherwise eclipse complains (Google plugin bug?) -->
<inherits name='com.google.gwt.junit.JUnit' />

View File

@ -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<TimeDimensionTypeElement> comboTimeDimensionType = null;
protected FieldLabel comboTimeDimensionTypeLabel;
protected ComboBox<LocaleTypeElement> comboLocaleType = null;
protected FieldLabel comboLocaleTypeLabel;
protected ListStore<LocaleTypeElement> storeComboLocaleType;
protected ListLoader<ListLoadConfig, ListLoadResult<ColumnData>> 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<LocaleTypeElement>(
propsLocaleType.id());
comboLocaleType = new ComboBox<LocaleTypeElement>(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<TimeDimensionTypeElement, String> view = new ListView<TimeDimensionTypeElement, String>(storeComboTimeDimensionType,
propsTimeDimensionType.viewLabel());
view.setWidth("150px");
*/
* ListView<TimeDimensionTypeElement, String> view = new
* ListView<TimeDimensionTypeElement,
* String>(storeComboTimeDimensionType,
* propsTimeDimensionType.viewLabel()); view.setWidth("150px");
*/
comboTimeDimensionType = new ComboBox<TimeDimensionTypeElement>(
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<LocaleTypeElement> labelProvider) {
comboLocaleType
.addSelectionHandler(new SelectionHandler<LocaleTypeElement>() {
public void onSelection(
SelectionEvent<LocaleTypeElement> 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<TabResource> 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<ArrayList<String>>() {
@Override
public void onFailure(Throwable caught) {
Log.debug(caught.getLocalizedMessage());
UtilsGXT3.alert("Error retrieving locales",
caught.getLocalizedMessage());
}
@Override
public void onSuccess(ArrayList<String> result) {
storeComboLocaleType.clear();
ArrayList<LocaleTypeElement> locales = new ArrayList<LocaleTypeElement>();
LocaleTypeElement locale;
for (String local : result) {
locale = new LocaleTypeElement(local);
locales.add(locale);
}
storeComboLocaleType.addAll(locales);
storeComboLocaleType.commitChanges();
// comboColumnReferenceTypeLabel.setVisible(true);
}
});
}
}

View File

@ -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"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public interface LocaleTypeProperties extends
PropertyAccess<LocaleTypeElement> {
@Path("id")
ModelKeyProvider<LocaleTypeElement> id();
LabelProvider<LocaleTypeElement> label();
}

View File

@ -0,0 +1,49 @@
package org.gcube.portlets.user.td.columnwidget.client.store;
import java.io.Serializable;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
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 + "]";
}
}

View File

@ -2,7 +2,8 @@
<module rename-to='ColumnWidget'>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User' />
<!-- We need the JUnit module in the main module, -->
<!-- otherwise eclipse complains (Google plugin bug?) -->
<inherits name='com.google.gwt.junit.JUnit' />