From 696c7af4091f9b10f8a63846cc02c58e142089ab Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Thu, 17 Jul 2014 16:22:20 +0000 Subject: [PATCH] Minor Update git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-unionwizard-widget@98773 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/ColumnMappingCard.java | 33 ++++--- .../client/ColumnMappingPanel.java | 99 ++++++++++++++----- 2 files changed, 93 insertions(+), 39 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/td/unionwizardwidget/client/ColumnMappingCard.java b/src/main/java/org/gcube/portlets/user/td/unionwizardwidget/client/ColumnMappingCard.java index d4e2908..4379d0b 100644 --- a/src/main/java/org/gcube/portlets/user/td/unionwizardwidget/client/ColumnMappingCard.java +++ b/src/main/java/org/gcube/portlets/user/td/unionwizardwidget/client/ColumnMappingCard.java @@ -1,6 +1,10 @@ package org.gcube.portlets.user.td.unionwizardwidget.client; +import java.util.ArrayList; + +import org.gcube.portlets.user.td.gwtservice.shared.tr.union.UnionColumnsMapping; import org.gcube.portlets.user.td.gwtservice.shared.tr.union.UnionSession; +import org.gcube.portlets.user.td.unionwizardwidget.client.utils.UtilsGXT3; import org.gcube.portlets.user.td.wizardwidget.client.WizardCard; import com.allen_sauer.gwt.log.client.Log; @@ -19,18 +23,6 @@ public class ColumnMappingCard extends WizardCard { columnMappingPanel = new ColumnMappingPanel(thisCard,res); - /* - columnMappingPanel - .addSelectionHandler(new SelectionHandler() { - - public void onSelection(SelectionEvent event) { - codelistMappingSession.setConnectedTR(tabResourcesSelectionPanel - .getSelectedItem()); - getWizardWindow().setEnableNextButton(true); - } - - }); - */ setContent(columnMappingPanel); } @@ -76,8 +68,21 @@ public class ColumnMappingCard extends WizardCard { getWizardWindow().setEnableNextButton(false); getWizardWindow().setEnableBackButton(false); - - + ArrayList mapMatch=columnMappingPanel.getSelectedMap(); + if(mapMatch==null){ + Log.debug("No column match created: " + +mapMatch); + UtilsGXT3 + .info("Attentions", + "Creates a valid map"); + getWizardWindow().setEnableNextButton(true); + getWizardWindow().setEnableBackButton(true); + + } else { + + } + + } protected void goNext() { diff --git a/src/main/java/org/gcube/portlets/user/td/unionwizardwidget/client/ColumnMappingPanel.java b/src/main/java/org/gcube/portlets/user/td/unionwizardwidget/client/ColumnMappingPanel.java index 19e6abe..080f92a 100644 --- a/src/main/java/org/gcube/portlets/user/td/unionwizardwidget/client/ColumnMappingPanel.java +++ b/src/main/java/org/gcube/portlets/user/td/unionwizardwidget/client/ColumnMappingPanel.java @@ -1,10 +1,12 @@ package org.gcube.portlets.user.td.unionwizardwidget.client; import java.util.ArrayList; +import java.util.HashMap; import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync; import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpiredException; import org.gcube.portlets.user.td.gwtservice.shared.tr.ColumnData; +import org.gcube.portlets.user.td.gwtservice.shared.tr.union.UnionColumnsMapping; import org.gcube.portlets.user.td.unionwizardwidget.client.custom.IconButton; import org.gcube.portlets.user.td.unionwizardwidget.client.properties.ColumnDataProperties; import org.gcube.portlets.user.td.unionwizardwidget.client.resources.UnionResourceBundle; @@ -26,7 +28,6 @@ import com.sencha.gxt.data.shared.ListStore; import com.sencha.gxt.widget.core.client.ContentPanel; import com.sencha.gxt.widget.core.client.Resizable; import com.sencha.gxt.widget.core.client.Resizable.Dir; - import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData; import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack; import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer; @@ -37,6 +38,7 @@ 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.form.TextField; /** * @@ -47,6 +49,7 @@ import com.sencha.gxt.widget.core.client.form.FieldLabel; public class ColumnMappingPanel extends ContentPanel { private static final String COMBOWIDTH = "120px"; + private static final String COLUMNLABELWIDTH = "120px"; protected ResourceBundle res; protected ColumnMappingCard parent; protected VerticalLayoutContainer vert; @@ -54,12 +57,14 @@ public class ColumnMappingPanel extends ContentPanel { protected ArrayList unionColumns; protected ResizeContainer thisPanel; + protected HashMap columnMap; + protected ArrayList listUnionColumnsMapping; + protected String itemIdSourceColumn = "itemIdSourceColumn"; protected String itemIdUnionColumn = "itemIdUnionColumn"; protected String itemIdLabelColumn = "itemIdLabelColumn"; - protected String itemIdBtnAdd="itemIdBtnAdd"; - protected String itemIdBtnDel="itemIdBtnDel"; - + protected String itemIdBtnAdd = "itemIdBtnAdd"; + protected String itemIdBtnDel = "itemIdBtnDel"; /** * @@ -69,8 +74,8 @@ public class ColumnMappingPanel extends ContentPanel { public ColumnMappingPanel(ColumnMappingCard parent, ResourceBundle res) { this.res = res; this.parent = parent; - thisPanel=this; - + thisPanel = this; + parent.unionSession.getColumnsMatch(); Log.debug("ColumnMappingPanel"); init(); retrieveSourceColumns(); @@ -163,7 +168,7 @@ public class ColumnMappingPanel extends ContentPanel { public void onSuccess(ArrayList result) { unionColumns = result; create(); - + } }); @@ -173,13 +178,19 @@ public class ColumnMappingPanel extends ContentPanel { final HBoxLayoutContainer horiz = new HBoxLayoutContainer(); + // Column Label + TextField columnLabel = new TextField(); + columnLabel.setItemId(itemIdLabelColumn); + columnLabel.setAllowBlank(false); + columnLabel.setWidth(COLUMNLABELWIDTH); + // Source Combo ColumnDataProperties propsSourceColumn = GWT .create(ColumnDataProperties.class); ListStore storeComboSourceColumn = new ListStore( propsSourceColumn.id()); storeComboSourceColumn.addAll(sourceColumns); - + final ComboBox comboSourceColumn = new ComboBox( storeComboSourceColumn, propsSourceColumn.label()); comboSourceColumn.setItemId(itemIdSourceColumn); @@ -191,13 +202,13 @@ public class ColumnMappingPanel extends ContentPanel { comboSourceColumn.setEditable(false); comboSourceColumn.setTriggerAction(TriggerAction.ALL); - //Union Combo + // Union Combo ColumnDataProperties propsUnionColumn = GWT .create(ColumnDataProperties.class); ListStore storeComboUnionColumn = new ListStore( propsUnionColumn.id()); + storeComboUnionColumn.addAll(unionColumns); - final ComboBox comboUnionColumn = new ComboBox( storeComboUnionColumn, propsUnionColumn.label()); comboUnionColumn.setItemId(itemIdUnionColumn); @@ -208,15 +219,12 @@ public class ColumnMappingPanel extends ContentPanel { comboUnionColumn.setWidth(COMBOWIDTH); comboUnionColumn.setEditable(false); comboUnionColumn.setTriggerAction(TriggerAction.ALL); - - + final IconButton btnAdd = new IconButton(); btnAdd.setItemId(itemIdBtnAdd); btnAdd.setIcon(UnionResourceBundle.INSTANCE.add()); btnAdd.addClickHandler(new ClickHandler() { - - public void onClick(ClickEvent event) { Log.debug("Clicked btnAdd"); addColumnMap(); @@ -246,11 +254,12 @@ public class ColumnMappingPanel extends ContentPanel { } }); btnDel.setVisible(false); - + horiz.setHBoxLayoutAlign(HBoxLayoutAlign.MIDDLE); horiz.setPack(BoxLayoutPack.START); - + + horiz.add(columnLabel, new BoxLayoutData(new Margins(2, 1, 2, 1))); horiz.add(comboSourceColumn, new BoxLayoutData(new Margins(2, 1, 2, 1))); horiz.add(comboUnionColumn, new BoxLayoutData(new Margins(2, 1, 2, 1))); horiz.add(btnAdd, new BoxLayoutData(new Margins(2, 1, 2, 1))); @@ -259,16 +268,23 @@ public class ColumnMappingPanel extends ContentPanel { vert.add(horiz); } - + protected void addColumnMap() { final HBoxLayoutContainer horiz = new HBoxLayoutContainer(); + // Column Label + TextField columnLabel = new TextField(); + columnLabel.setItemId(itemIdLabelColumn); + columnLabel.setAllowBlank(false); + columnLabel.setWidth(COLUMNLABELWIDTH); + // Source Combo ColumnDataProperties propsSourceColumn = GWT .create(ColumnDataProperties.class); ListStore storeComboSourceColumn = new ListStore( propsSourceColumn.id()); + storeComboSourceColumn.addAll(unionColumns); final ComboBox comboSourceColumn = new ComboBox( storeComboSourceColumn, propsSourceColumn.label()); @@ -281,11 +297,12 @@ public class ColumnMappingPanel extends ContentPanel { comboSourceColumn.setEditable(false); comboSourceColumn.setTriggerAction(TriggerAction.ALL); - //Union Combo + // Union Combo ColumnDataProperties propsUnionColumn = GWT .create(ColumnDataProperties.class); ListStore storeComboUnionColumn = new ListStore( propsUnionColumn.id()); + storeComboUnionColumn.addAll(unionColumns); final ComboBox comboUnionColumn = new ComboBox( storeComboUnionColumn, propsUnionColumn.label()); @@ -297,15 +314,12 @@ public class ColumnMappingPanel extends ContentPanel { comboUnionColumn.setWidth(COMBOWIDTH); comboUnionColumn.setEditable(false); comboUnionColumn.setTriggerAction(TriggerAction.ALL); - - + final IconButton btnAdd = new IconButton(); btnAdd.setItemId(itemIdBtnAdd); btnAdd.setIcon(UnionResourceBundle.INSTANCE.add()); btnAdd.addClickHandler(new ClickHandler() { - - public void onClick(ClickEvent event) { Log.debug("Clicked btnAdd"); addColumnMap(); @@ -335,11 +349,11 @@ public class ColumnMappingPanel extends ContentPanel { } }); btnDel.setVisible(false); - - + horiz.setHBoxLayoutAlign(HBoxLayoutAlign.MIDDLE); horiz.setPack(BoxLayoutPack.START); - + + horiz.add(columnLabel, new BoxLayoutData(new Margins(2, 1, 2, 1))); horiz.add(comboSourceColumn, new BoxLayoutData(new Margins(2, 1, 2, 1))); horiz.add(comboUnionColumn, new BoxLayoutData(new Margins(2, 1, 2, 1))); horiz.add(btnAdd, new BoxLayoutData(new Margins(2, 1, 2, 1))); @@ -347,5 +361,40 @@ public class ColumnMappingPanel extends ContentPanel { vert.add(horiz); } + + /** + * + * @return + */ + protected ArrayList getSelectedMap() { + listUnionColumnsMapping=new ArrayList(); + + int lenght = vert.getWidgetCount(); + int i = 0; + for (; i < lenght; i++) { + HBoxLayoutContainer h = (HBoxLayoutContainer) vert.getWidget(i); + if (h != null) { + @SuppressWarnings("unchecked") + ComboBox comboSourceColumn = (ComboBox) h + .getItemByItemId(itemIdSourceColumn); + ColumnData sourceColumn = comboSourceColumn.getCurrentValue(); + if (sourceColumn != null) { + @SuppressWarnings("unchecked") + ComboBox comboUnionColumn= (ComboBox) h + .getItemByItemId(itemIdUnionColumn); + ColumnData unionColumn = comboUnionColumn.getCurrentValue(); + if (unionColumn != null) { + UnionColumnsMapping colMatch= new UnionColumnsMapping(sourceColumn, unionColumn); + listUnionColumnsMapping.add(colMatch); + } + } + } else { + + } + } + + return listUnionColumnsMapping; + + } }