diff --git a/src/main/java/org/gcube/portlets/user/td/extractcodelistwidget/client/TargetColumnsSelectionPanel.java b/src/main/java/org/gcube/portlets/user/td/extractcodelistwidget/client/TargetColumnsSelectionPanel.java index f79010b..1757f20 100644 --- a/src/main/java/org/gcube/portlets/user/td/extractcodelistwidget/client/TargetColumnsSelectionPanel.java +++ b/src/main/java/org/gcube/portlets/user/td/extractcodelistwidget/client/TargetColumnsSelectionPanel.java @@ -2,6 +2,8 @@ package org.gcube.portlets.user.td.extractcodelistwidget.client; import java.util.ArrayList; +import org.gcube.portlets.user.td.columnwidget.client.create.CreateDefColumnDialog; +import org.gcube.portlets.user.td.columnwidget.client.create.CreateDefColumnListener; 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.properties.ColumnDataPropertiesCombo; @@ -16,6 +18,7 @@ import org.gcube.portlets.user.td.gwtservice.shared.tr.DefNewColumn; import org.gcube.portlets.user.td.gwtservice.shared.tr.TabResource; import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent; import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType; +import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.TableType; import com.allen_sauer.gwt.log.client.Log; import com.google.gwt.core.client.GWT; @@ -135,6 +138,7 @@ public class TargetColumnsSelectionPanel extends FramedPanel implements formLayout = new VerticalLayoutContainer(); formLayout.setScrollMode(ScrollMode.AUTO); + formLayout.setAdjustForScroll(true); ArrayList fields = generateFields(); for (FieldLabel fl : fields) { @@ -162,7 +166,7 @@ public class TargetColumnsSelectionPanel extends FramedPanel implements protected ArrayList generateFields() { ArrayList fields = new ArrayList(); - + int i = 0; for (ColumnData sourceCol : parent.extractCodelistSession .getSourceColumns()) { String label = new String(); @@ -175,36 +179,58 @@ public class TargetColumnsSelectionPanel extends FramedPanel implements } if (connection == null) { - FieldLabel fieldLabel = retrieveNewColumnLabel(sourceCol, label); - fieldLabel.setLabelWidth(LABELSIZE); - fieldLabel.setId(sourceCol.getColumnId()); - fields.add(fieldLabel); - } else { - FieldLabel fieldLabel = retrieveReferenceColumnLabel(sourceCol, + FieldLabel fieldLabel = retrieveNewColumnLabel(i, sourceCol, label); fieldLabel.setLabelWidth(LABELSIZE); fieldLabel.setId(sourceCol.getColumnId()); fields.add(fieldLabel); + } else { + FieldLabel fieldLabel = retrieveReferenceColumnLabel(i, + sourceCol, label); + fieldLabel.setLabelWidth(LABELSIZE); + fieldLabel.setId(sourceCol.getColumnId()); + fields.add(fieldLabel); } - + i++; } return fields; } - protected FieldLabel retrieveNewColumnLabel(final ColumnData col, - String label) { + protected FieldLabel retrieveNewColumnLabel(final int index, + final ColumnData col, String label) { // comboDefColumn ExtractCodelistDefColumnPropertiesCombo props = GWT .create(ExtractCodelistDefColumnPropertiesCombo.class); ListStore storeComboDefColumn = new ListStore( props.id()); - final ComboBox comboDefColumn = new ComboBox( storeComboDefColumn, props.label()); Log.debug("ComboDefColumn created"); - + + final CreateDefColumnListener createDefColumnListener = new CreateDefColumnListener() { + + @Override + public void failedDefColumnCreation(String reason, String details) { + Log.error("Change Value Failed:" + reason + " " + details); + + } + + @Override + public void completedDefColumnCreation(DefNewColumn defNewColumn) { + comboDefColumn.setValue(defNewColumn); + + } + + @Override + public void abortedDefColumnCreation() { + Log.debug("Change Value Aborted"); + + } + }; + final String indexS = String.valueOf(index); + comboDefColumn.addTriggerClickHandler(new TriggerClickHandler() { @Override @@ -212,28 +238,27 @@ public class TargetColumnsSelectionPanel extends FramedPanel implements Log.debug("ComboDefColumn TriggerClickEvent"); comboDefColumn.collapse(); - /*DimensionRowSelectionDialog dialogDimensionRowSelection = new DimensionRowSelectionDialog( - col, cellData, eventBus); - dialogDimensionRowSelection.addListener(listener); - dialogDimensionRowSelection.show();*/ + CreateDefColumnDialog createDefColumnDialog = new CreateDefColumnDialog( + indexS, TableType.CODELIST, parent.getEventBus()); + createDefColumnDialog.addListener(createDefColumnListener); + createDefColumnDialog.show(); } }); - - + comboDefColumn.setEmptyText("Select a Column..."); comboDefColumn.setWidth(COMBOWIDTH); comboDefColumn.setEditable(false); comboDefColumn.setTriggerAction(TriggerAction.ALL); - + FieldLabel columnLabel = new FieldLabel(comboDefColumn, label); columnLabel.setId(col.getColumnId()); return columnLabel; } - protected FieldLabel retrieveReferenceColumnLabel(final ColumnData col, - String label) { + protected FieldLabel retrieveReferenceColumnLabel(int index, + final ColumnData col, String label) { // comboColumn ColumnDataPropertiesCombo props = GWT .create(ColumnDataPropertiesCombo.class); @@ -343,6 +368,7 @@ public class TargetColumnsSelectionPanel extends FramedPanel implements form.clear(); formLayout = new VerticalLayoutContainer(); formLayout.setScrollMode(ScrollMode.AUTO); + formLayout.setAdjustForScroll(true); ArrayList fields = generateFields(); for (FieldLabel fl : fields) {