diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index dc69409..5030e3e 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -4,12 +4,6 @@
-
- uses
-
-
- uses
-
diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/ChangeToAnnotationColumnDialog.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/ChangeToAnnotationColumnDialog.java
new file mode 100644
index 0000000..98dddae
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/ChangeToAnnotationColumnDialog.java
@@ -0,0 +1,180 @@
+package org.gcube.portlets.user.td.columnwidget.client;
+
+import java.util.ArrayList;
+
+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 com.allen_sauer.gwt.log.client.Log;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.core.client.Scheduler.ScheduledCommand;
+import com.google.gwt.event.logical.shared.SelectionEvent;
+import com.google.gwt.event.logical.shared.SelectionHandler;
+import com.google.gwt.event.logical.shared.ValueChangeEvent;
+import com.google.gwt.event.logical.shared.ValueChangeHandler;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.widget.client.TextButton;
+import com.sencha.gxt.cell.core.client.form.ComboBoxCell.TriggerAction;
+import com.sencha.gxt.core.client.util.Margins;
+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.ListLoadResult;
+import com.sencha.gxt.data.shared.loader.ListLoadResultBean;
+import com.sencha.gxt.data.shared.loader.ListLoader;
+import com.sencha.gxt.data.shared.loader.LoadResultListStoreBinding;
+import com.sencha.gxt.widget.core.client.ContentPanel;
+import com.sencha.gxt.widget.core.client.FramedPanel;
+import com.sencha.gxt.widget.core.client.Window;
+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.form.ComboBox;
+import com.sencha.gxt.widget.core.client.form.FieldLabel;
+import com.sencha.gxt.widget.core.client.info.Info;
+
+
+public class ChangeToAnnotationColumnDialog extends Window {
+ protected TRId trId;
+ protected ComboBox combo=null;
+ protected String columnName=null;
+
+ public ChangeToAnnotationColumnDialog(TRId trId) {
+ create(trId, null);
+ }
+
+ public ChangeToAnnotationColumnDialog(TRId trId, String columnName) {
+ create(trId, columnName);
+ }
+
+ protected void create(TRId trId, String columnName) {
+ this.trId=trId;
+ this.columnName=columnName;
+ setBodyBorder(false);
+ // getHeader().setIcon(Resources.IMAGES.side_list());
+ setHeadingText("Change To Annotation Column");
+ setWidth(400);
+ setHeight(120);
+ setResizable(false);
+
+ VerticalLayoutContainer basicLayout = new VerticalLayoutContainer();
+
+ ContentPanel panel = new ContentPanel();
+ panel.setHeaderVisible(false);
+ //panel.setBodyStyle("margin: 0px;");
+
+ 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) {
+ loadData(loadConfig, callback);
+ }
+ };
+ final ListLoader> loader = new ListLoader>(proxy);
+ loader.setRemoteSort(false);
+ loader.addLoadHandler(new LoadResultListStoreBinding>(store));
+ Log.trace("Loader created");
+
+
+ combo = new ComboBox(store,
+ props.label()){
+ @Override
+ protected void onAfterFirstAttach() {
+ super.onAfterFirstAttach();
+ Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+ public void execute() {
+ loader.load();
+ }
+ });
+ }
+ };
+ Log.trace("Combo created");
+
+ addHandlersForEventObservation(combo, props.label());
+
+ combo.setEmptyText("Select a column...");
+ combo.setWidth(150);
+ combo.setTypeAhead(true);
+ combo.setTriggerAction(TriggerAction.ALL);
+ combo.setLoader(loader);
+
+ FramedPanel form = new FramedPanel();
+ form.setHeaderVisible(false);
+ //form.setWidth(350);
+ form.setBodyStyle("background: none;");
+
+ VerticalLayoutContainer v = new VerticalLayoutContainer();
+ v.add(new FieldLabel(combo, "Column"), 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);
+
+ }
+
+ private void addHandlersForEventObservation(ComboBox combo,
+ final LabelProvider labelProvider) {
+ combo.addValueChangeHandler(new ValueChangeHandler() {
+
+ public void onValueChange(ValueChangeEvent event) {
+ Info.display(
+ "Value Changed",
+ "New value: "
+ + (event.getValue() == null ? "nothing"
+ : labelProvider.getLabel(event
+ .getValue()) + "!"));
+
+ }
+ });
+ combo.addSelectionHandler(new SelectionHandler() {
+ public void onSelection(SelectionEvent event) {
+ Info.display(
+ "State Selected",
+ "You selected "
+ + (event.getSelectedItem() == null ? "nothing"
+ : labelProvider.getLabel(event
+ .getSelectedItem()) + "!"));
+ }
+ });
+ }
+
+
+
+
+
+ protected void loadData(ListLoadConfig loadConfig,
+ final AsyncCallback> callback) {
+ TDGWTServiceAsync.INSTANCE.getColumns(trId, new AsyncCallback>(){
+
+ public void onFailure(Throwable caught) {
+ Log.error("load combo failure:"+caught.getLocalizedMessage());
+ callback.onFailure(caught);
+ }
+
+ public void onSuccess(ArrayList result) {
+ Log.trace("loaded " + result.size() + " ColumnData");
+ if(columnName!=null){
+ for(ColumnData cd: result){
+ if(cd.getName().compareTo(columnName)==0){
+ combo.setValue(cd);
+ }
+ }
+ }
+ callback.onSuccess(new ListLoadResultBean(
+ result));
+
+ }
+
+ });
+
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/ColumnWidgetEntry.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/ColumnWidgetEntry.java
index f726eab..59c3906 100644
--- a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/ColumnWidgetEntry.java
+++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/ColumnWidgetEntry.java
@@ -12,12 +12,15 @@ public class ColumnWidgetEntry implements EntryPoint {
public void onModuleLoad() {
TRId trId=new TRId();
+ //For example Tabular Resource 1 and table 1
trId.setId("1");
trId.setTableId("1");
RemoveColumnDialog dialog=new RemoveColumnDialog(trId);
dialog.show();
ChangeLabelColumnDialog changeLabel=new ChangeLabelColumnDialog(trId);
changeLabel.show();
+ ChangeToAnnotationColumnDialog changeToAnnotation=new ChangeToAnnotationColumnDialog(trId);
+ changeToAnnotation.show();
Log.info("Hello!");
}
}