diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index a8e7681..c7160d5 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -10,6 +10,9 @@
uses
+
+ uses
+
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 75d630c..f7d6153 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
@@ -3,9 +3,17 @@ package org.gcube.portlets.user.td.columnwidget.client;
import java.util.ArrayList;
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.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.gwtservice.client.rpc.TDGWTServiceAsync;
import org.gcube.portlets.user.td.gwtservice.shared.tr.ColumnData;
+
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
+import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnDataType;
import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnTypeCode;
import com.allen_sauer.gwt.log.client.Log;
@@ -47,40 +55,46 @@ public class ChangeColumnTypePanel extends FramedPanel {
protected String columnName;
protected ColumnData column;
protected ComboBox comboColumn = null;
- protected ComboBox comboTypeColumn = null;
-
+ protected ComboBox comboColumnTypeCode = null;
+ protected ComboBox comboMeasureType = null;
+ protected TextField labelColumn;
+ protected FieldLabel comboMeasureTypeLabel;
-
- public ChangeColumnTypePanel(TRId trId, String columnName){
+ public ChangeColumnTypePanel(TRId trId, String columnName) {
setWidth(WIDTH);
setHeight(HEIGHT);
setHeaderVisible(false);
setBodyBorder(false);
- this.trId=trId;
- this.columnName=columnName;
-
+ this.trId = trId;
+ this.columnName = columnName;
+
VerticalLayoutContainer basicLayout = new VerticalLayoutContainer();
-
+
ContentPanel panel = new ContentPanel();
panel.setHeaderVisible(false);
-
- ColumnDataProperties props = GWT.create(ColumnDataProperties.class);
- ListStore store = new ListStore(props.id());
-
- Log.trace("Store created");
- RpcProxy> proxy = new RpcProxy>() {
-
- public void load(ListLoadConfig loadConfig, final AsyncCallback> callback) {
+
+ ColumnDataProperties propsColumnData = GWT
+ .create(ColumnDataProperties.class);
+ ListStore storeCombo = new ListStore(
+ propsColumnData.id());
+
+ Log.trace("StoreCombo created");
+ RpcProxy> proxy = new RpcProxy>() {
+
+ public void load(ListLoadConfig loadConfig,
+ final AsyncCallback> callback) {
loadData(loadConfig, callback);
- }
+ }
};
- final ListLoader> loader = new ListLoader>(proxy);
+ final ListLoader> loader = new ListLoader>(
+ proxy);
loader.setRemoteSort(false);
- loader.addLoadHandler(new LoadResultListStoreBinding>(store));
- Log.trace("Loader created");
-
-
- comboColumn = new ComboBox(store, props.label()){
+ loader.addLoadHandler(new LoadResultListStoreBinding>(
+ storeCombo));
+ Log.trace("LoaderCombo created");
+
+ comboColumn = new ComboBox(storeCombo,
+ propsColumnData.label()) {
protected void onAfterFirstAttach() {
super.onAfterFirstAttach();
@@ -91,36 +105,79 @@ public class ChangeColumnTypePanel extends FramedPanel {
});
}
};
- Log.trace("Combo created");
-
- addHandlersForEventObservation(comboColumn, props.label());
+ Log.trace("Combo ColumnData created");
+
+ addHandlersForEventObservation(comboColumn, propsColumnData.label());
comboColumn.setEmptyText("Select a column...");
comboColumn.setWidth(150);
comboColumn.setTypeAhead(true);
+ comboColumn.setEditable(true);
comboColumn.setTriggerAction(TriggerAction.ALL);
comboColumn.setLoader(loader);
+
+ // comboColumnTypeCode
+ ColumnTypeCodeProperties propsColumnTypeCode = GWT
+ .create(ColumnTypeCodeProperties.class);
+ ListStore storeComboTypeCode = new ListStore(
+ propsColumnTypeCode.id());
+ storeComboTypeCode.addAll(ColumnTypeCodeStore.getColumnTypeCodes());
+
+ comboColumnTypeCode = new ComboBox(
+ storeComboTypeCode, propsColumnTypeCode.label());
+ Log.trace("ComboColumnTypeCode created");
+
+ addHandlersForComboColumnTypeCode(propsColumnTypeCode.label());
+
+ comboColumnTypeCode.setEmptyText("Select a column type...");
+ comboColumnTypeCode.setWidth(150);
+ comboColumnTypeCode.setTypeAhead(true);
+ comboColumnTypeCode.setTriggerAction(TriggerAction.ALL);
+
+ // comboMeasureType
+ ColumnDataTypeProperties propsMeasureType = GWT
+ .create(ColumnDataTypeProperties.class);
+ ListStore storeComboMeasureType = new ListStore(
+ propsMeasureType.id());
+ storeComboMeasureType.addAll(ColumnDataTypeStore.getMeasureType());
+
+ comboMeasureType = new ComboBox(
+ storeComboMeasureType, propsMeasureType.label());
+ Log.trace("ComboMeasureType created");
+
+ addHandlersForComboMeasureType(propsMeasureType.label());
+
+ comboMeasureType.setEmptyText("Select a column type...");
+ comboMeasureType.setWidth(150);
+ comboMeasureType.setTypeAhead(true);
+ comboMeasureType.setTriggerAction(TriggerAction.ALL);
+
+ comboMeasureTypeLabel=new FieldLabel(comboMeasureType, "Measure Type");
+ comboMeasureTypeLabel.setVisible(false);
FramedPanel form = new FramedPanel();
- form.setHeaderVisible(false);
- //form.setWidth(350);
- form.setBodyStyle("background: none;");
-
- TextField labelColumn=new TextField();
-
-
-
-
- VerticalLayoutContainer v = new VerticalLayoutContainer();
- v.add(new FieldLabel(comboColumn, "Column"), new VerticalLayoutData(1, -1));
- v.add(new FieldLabel(labelColumn, "Label"), new VerticalLayoutData(1, -1));
-
- form.add(v);
- form.addButton(new TextButton("Change"));
-
-
- panel.add(form);
- basicLayout.add(panel, new VerticalLayoutData(-1, -1, new Margins()));
+ form.setHeaderVisible(false);
+ // form.setWidth(350);
+ form.setBodyStyle("background: none;");
+
+ labelColumn = new TextField();
+
+ VerticalLayoutContainer v = new VerticalLayoutContainer();
+ v.add(new FieldLabel(comboColumn, "Column"), new VerticalLayoutData(1,
+ -1));
+ v.add(new FieldLabel(labelColumn, "Label"), new VerticalLayoutData(1,
+ -1));
+ v.add(new FieldLabel(comboColumnTypeCode, "Column Type"),
+ new VerticalLayoutData(1, -1));
+ v.add(comboMeasureTypeLabel,
+ new VerticalLayoutData(1, -1));
+
+
+ form.add(v);
+ form.addButton(new TextButton("Change"));
+
+ panel.add(form);
+ basicLayout.add(panel, new VerticalLayoutData(-1, -1, new Margins()));
add(basicLayout);
}
@@ -151,6 +208,61 @@ public class ChangeColumnTypePanel extends FramedPanel {
});
}
+
+ protected void addHandlersForComboColumnTypeCode(final LabelProvider labelProvider){
+ comboColumnTypeCode.addSelectionHandler(new SelectionHandler() {
+ public void onSelection(SelectionEvent event) {
+ Info.display(
+ "Type Selected",
+ "You selected "
+ + (event.getSelectedItem() == null ? "nothing"
+ : labelProvider.getLabel(event
+ .getSelectedItem()) + "!"));
+ Log.debug("ComboColumnTypeCode selected: "+event.getSelectedItem());
+ ColumnTypeCodeElement columnType=event.getSelectedItem();
+ updateColumnType(columnType.getCode());
+ }
+
+ });
+ }
+
+ protected void addHandlersForComboMeasureType(final LabelProvider labelProvider){
+ comboMeasureType.addSelectionHandler(new SelectionHandler() {
+ public void onSelection(SelectionEvent event) {
+ Info.display(
+ "Type Selected",
+ "You selected "
+ + (event.getSelectedItem() == null ? "nothing"
+ : labelProvider.getLabel(event
+ .getSelectedItem()) + "!"));
+ Log.debug("ComboMeasureType selected: "+event.getSelectedItem());
+ ColumnDataTypeElement measureType=event.getSelectedItem();
+ updateMeasureType(measureType.getType());
+ }
+
+ });
+ }
+
+
+
+ protected void updateColumnType(ColumnTypeCode type){
+ if(type==ColumnTypeCode.MEASURE){
+ comboMeasureTypeLabel.setVisible(true);
+ } else {
+ comboMeasureTypeLabel.setVisible(false);
+ }
+ }
+
+ protected void updateMeasureType(ColumnDataType type){
+ /*if(type==ColumnDataType.Integer){
+
+ } else {
+
+ }*/
+ }
+
+
+
protected void loadData(ListLoadConfig loadConfig,
final AsyncCallback> callback) {
TDGWTServiceAsync.INSTANCE.getColumns(trId,
@@ -168,6 +280,9 @@ public class ChangeColumnTypePanel extends FramedPanel {
for (ColumnData cd : result) {
if (cd.getName().compareTo(columnName) == 0) {
comboColumn.setValue(cd);
+ labelColumn.setValue(cd.getLabel());
+ comboColumnTypeCode.select(ColumnTypeCodeStore
+ .selected(cd.getTypeCode()));
}
}
}
diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/properties/ColumnDataTypeProperties.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/properties/ColumnDataTypeProperties.java
new file mode 100644
index 0000000..c625c7c
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/properties/ColumnDataTypeProperties.java
@@ -0,0 +1,23 @@
+package org.gcube.portlets.user.td.columnwidget.client.properties;
+
+
+
+
+
+import org.gcube.portlets.user.td.columnwidget.client.store.ColumnDataTypeElement;
+
+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;
+
+public interface ColumnDataTypeProperties extends
+ PropertyAccess {
+
+ @Path("id")
+ ModelKeyProvider id();
+
+ LabelProvider label();
+
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/properties/ColumnTypeCodeProperties.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/properties/ColumnTypeCodeProperties.java
index b3329ad..a6cb64c 100644
--- a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/properties/ColumnTypeCodeProperties.java
+++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/properties/ColumnTypeCodeProperties.java
@@ -1,7 +1,8 @@
package org.gcube.portlets.user.td.columnwidget.client.properties;
-import org.gcube.portlets.user.td.gwtservice.shared.tr.ColumnTypeCode;
+
+import org.gcube.portlets.user.td.columnwidget.client.store.ColumnTypeCodeElement;
import com.google.gwt.editor.client.Editor.Path;
import com.sencha.gxt.data.shared.LabelProvider;
@@ -9,12 +10,12 @@ import com.sencha.gxt.data.shared.ModelKeyProvider;
import com.sencha.gxt.data.shared.PropertyAccess;
public interface ColumnTypeCodeProperties extends
- PropertyAccess {
+ PropertyAccess {
@Path("id")
- ModelKeyProvider id();
+ ModelKeyProvider id();
- LabelProvider label();
+ LabelProvider label();
}
diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/ColumnDataTypeElement.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/ColumnDataTypeElement.java
new file mode 100644
index 0000000..eaac74d
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/ColumnDataTypeElement.java
@@ -0,0 +1,49 @@
+package org.gcube.portlets.user.td.columnwidget.client.store;
+
+import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnDataType;
+
+/**
+ *
+ * @author "Giancarlo Panichi"
+ * g.panichi@isti.cnr.it
+ *
+ */
+public class ColumnDataTypeElement {
+
+ protected int id; // For insert in table only
+ protected ColumnDataType type;
+
+
+ public ColumnDataTypeElement(int id,ColumnDataType type){
+ this.id=id;
+ this.type=type;
+ }
+
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public ColumnDataType getType() {
+ return type;
+ }
+ public void setCode(ColumnDataType type) {
+ this.type = type;
+ }
+
+ public String getLabel() {
+ return type.toString();
+ }
+
+ @Override
+ public String toString() {
+ return "ColumnTypeCode [id=" + id + ", code=" + type + ", getLabel()="
+ + getLabel() + "]";
+ }
+
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/ColumnDataTypeStore.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/ColumnDataTypeStore.java
new file mode 100644
index 0000000..ee4a580
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/ColumnDataTypeStore.java
@@ -0,0 +1,44 @@
+package org.gcube.portlets.user.td.columnwidget.client.store;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+
+import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnDataType;
+import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnTypeCode;
+
+
+
+
+/**
+ *
+ * @author "Giancarlo Panichi" g.panichi@isti.cnr.it
+ *
+ */
+public class ColumnDataTypeStore implements Serializable {
+
+ private static final long serialVersionUID = -1908324094430432681L;
+
+ protected static ArrayList store;
+
+ public static ArrayList getMeasureType(){
+ store=new ArrayList();
+ store.add(new ColumnDataTypeElement(1,ColumnDataType.Integer));
+ store.add(new ColumnDataTypeElement(2,ColumnDataType.Numeric));
+ return store;
+ }
+
+ public static int selectedMeasure(String selected){
+ int position=0;
+ if(selected.compareTo(ColumnDataType.Integer.toString())==0){
+ position=1;
+ } else {
+ if(selected.compareTo(ColumnDataType.Numeric.toString())==0){
+ position=2;
+ } else {
+ }
+ }
+ return position;
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/ColumnTypeCodeElement.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/ColumnTypeCodeElement.java
new file mode 100644
index 0000000..5392de3
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/ColumnTypeCodeElement.java
@@ -0,0 +1,49 @@
+package org.gcube.portlets.user.td.columnwidget.client.store;
+
+import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnTypeCode;
+
+/**
+ *
+ * @author "Giancarlo Panichi"
+ * g.panichi@isti.cnr.it
+ *
+ */
+public class ColumnTypeCodeElement {
+
+ protected int id; // For insert in table only
+ protected ColumnTypeCode code;
+
+
+ public ColumnTypeCodeElement(int id,ColumnTypeCode code){
+ this.id=id;
+ this.code=code;
+ }
+
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public ColumnTypeCode getCode() {
+ return code;
+ }
+ public void setCode(ColumnTypeCode code) {
+ this.code = code;
+ }
+
+ public String getLabel() {
+ return code.getColumnTypeCodeLabel();
+ }
+
+ @Override
+ public String toString() {
+ return "ColumnTypeCode [id=" + id + ", code=" + code + ", getLabel()="
+ + getLabel() + "]";
+ }
+
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/ColumnTypeCodeStore.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/ColumnTypeCodeStore.java
new file mode 100644
index 0000000..a911af7
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/store/ColumnTypeCodeStore.java
@@ -0,0 +1,81 @@
+package org.gcube.portlets.user.td.columnwidget.client.store;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+
+import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnTypeCode;
+
+
+
+
+/**
+ *
+ * @author "Giancarlo Panichi" g.panichi@isti.cnr.it
+ *
+ */
+public class ColumnTypeCodeStore implements Serializable {
+
+ private static final long serialVersionUID = -1908324094430432681L;
+
+ protected static ArrayList store = new ArrayList();
+
+ public static ArrayList getColumnTypeCodes(){
+ store.add(new ColumnTypeCodeElement(1,ColumnTypeCode.ANNOTATION));
+ store.add(new ColumnTypeCodeElement(2,ColumnTypeCode.ATTRIBUTE));
+ store.add(new ColumnTypeCodeElement(3,ColumnTypeCode.MEASURE));
+ store.add(new ColumnTypeCodeElement(4,ColumnTypeCode.CODE));
+ store.add(new ColumnTypeCodeElement(5,ColumnTypeCode.CODENAME));
+ store.add(new ColumnTypeCodeElement(6,ColumnTypeCode.CODEDESCRIPTION));
+ store.add(new ColumnTypeCodeElement(7,ColumnTypeCode.DIMENSION));
+ store.add(new ColumnTypeCodeElement(8,ColumnTypeCode.TIMEDIMENSION));
+
+ return store;
+ }
+
+ public static int selected(String selected){
+ int position=0;
+ if(selected.compareTo(ColumnTypeCode.ANNOTATION.toString())==0){
+ position=1;
+ } else {
+ if(selected.compareTo(ColumnTypeCode.ATTRIBUTE.toString())==0){
+ position=2;
+ } else {
+ if(selected.compareTo(ColumnTypeCode.MEASURE.toString())==0){
+ position=3;
+ } else {
+ if(selected.compareTo(ColumnTypeCode.CODE.toString())==0){
+ position=4;
+ } else {
+ if(selected.compareTo(ColumnTypeCode.CODENAME.toString())==0){
+ position=5;
+ } else {
+ if(selected.compareTo(ColumnTypeCode.CODEDESCRIPTION.toString())==0){
+ position=6;
+ } else {
+ if(selected.compareTo(ColumnTypeCode.DIMENSION.toString())==0){
+ position=7;
+ } else {
+ if(selected.compareTo(ColumnTypeCode.TIMEDIMENSION.toString())==0){
+ position=8;
+ } else {
+
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+ return position;
+ }
+
+}