diff --git a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/resources/ResourceBundle.java b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/resources/ResourceBundle.java index 3da8a95..546a4d1 100644 --- a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/resources/ResourceBundle.java +++ b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/resources/ResourceBundle.java @@ -4,6 +4,7 @@ package org.gcube.portlets.user.td.tablewidget.client.resources; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.resources.client.ClientBundle.Source; /** * Resource Bundle @@ -87,5 +88,11 @@ public interface ResourceBundle extends ClientBundle { @Source("basket_32.png") ImageResource basket32(); + + @Source("pencil_32.png") + ImageResource rowEdit32(); + + @Source("pencil.png") + ImageResource rowEdit(); } \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/resources/pencil.png b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/resources/pencil.png new file mode 100644 index 0000000..b855178 Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/resources/pencil.png differ diff --git a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/resources/pencil_32.png b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/resources/pencil_32.png new file mode 100644 index 0000000..b594c3f Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/resources/pencil_32.png differ diff --git a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/rows/EditRowDialog.java b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/rows/EditRowDialog.java index 7a8031a..320dfa0 100644 --- a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/rows/EditRowDialog.java +++ b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/rows/EditRowDialog.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import org.gcube.portlets.user.td.gwtservice.shared.tr.rows.DeleteRowsSession; import org.gcube.portlets.user.td.tablewidget.client.progress.DeleteRowsProgressDialog; import org.gcube.portlets.user.td.tablewidget.client.resources.ResourceBundle; +import org.gcube.portlets.user.td.tablewidget.client.util.UtilsGXT3; import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; import com.google.web.bindery.event.shared.EventBus; @@ -16,27 +17,32 @@ import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler; * Edit Row * * @author "Giancarlo Panichi" - * + * */ public class EditRowDialog extends Window { protected String WIDTH = "650px"; - protected String HEIGHT = "530px"; + protected String HEIGHT = "486px"; protected TRId trId; protected EventBus eventBus; protected ArrayList rows; protected DeleteRowsSession deleteRowsSession; - protected DeleteRowsProgressDialog deleteRowsProgressDialog; - - public EditRowDialog(TRId trId, ArrayList rows,EventBus eventBus) { + protected DeleteRowsProgressDialog deleteRowsProgressDialog; + + public EditRowDialog(TRId trId, ArrayList rows, EventBus eventBus) { this.trId = trId; - this.rows=rows; + this.rows = rows; this.eventBus = eventBus; - initWindow(); - EditRowPanel editRowPanel= new EditRowPanel(this, trId,rows,eventBus); - add(editRowPanel); - + if (rows == null || rows.size() <= 0) { + UtilsGXT3.alert("Attentions", + "No row selected"); + } else { + initWindow(); + EditRowPanel editRowPanel = new EditRowPanel(this, trId, rows, + eventBus); + add(editRowPanel); + } } - + protected void initWindow() { setWidth(WIDTH); setHeight(HEIGHT); @@ -46,10 +52,10 @@ public class EditRowDialog extends Window { setClosable(true); setModal(true); forceLayoutOnResize = true; - getHeader().setIcon(ResourceBundle.INSTANCE.ok()); + getHeader().setIcon(ResourceBundle.INSTANCE.rowEdit()); } - + /** * {@inheritDoc} */ @@ -59,20 +65,16 @@ public class EditRowDialog extends Window { closeBtn.addSelectHandler(new SelectHandler() { - public void onSelect(SelectEvent event) { close(); } }); } - - protected void close (){ + + protected void close() { hide(); - + } - - - - + } diff --git a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/rows/EditRowPanel.java b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/rows/EditRowPanel.java index 930946f..892d1ae 100644 --- a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/rows/EditRowPanel.java +++ b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/rows/EditRowPanel.java @@ -34,6 +34,7 @@ import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutD import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack; import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer; import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer.HBoxLayoutAlign; +import com.sencha.gxt.widget.core.client.container.SimpleContainer; 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.event.SelectEvent; @@ -53,28 +54,34 @@ import com.sencha.gxt.widget.core.client.form.TextField; */ public class EditRowPanel extends FramedPanel { protected String WIDTH = "560px"; - protected String HEIGHT = "520px"; + protected String HEIGHT = "400px"; + protected String FIELDSHEIGHT = "400px"; protected EditRowDialog parent; protected TRId trId; protected EventBus eventBus; protected ArrayList rows; protected ArrayList columns; - + protected String currentRow; private TextButton btnSave; private TextButton btnClose; public EditRowPanel(EditRowDialog parent, TRId trId, ArrayList rows, EventBus eventBus) { + super(); this.parent = parent; this.trId = trId; this.rows = rows; this.eventBus = eventBus; Log.debug("Create EditRowPanel(): [" + trId.toString() + " , rows:" + rows + "]"); - init(); - retrieveColumn(); - + if (rows == null || rows.size() <= 0) { + currentRow=rows.get(0); + UtilsGXT3.alert("Attentions", "No row selected"); + } else { + init(); + retrieveColumn(); + } } protected void init() { @@ -85,8 +92,12 @@ public class EditRowPanel extends FramedPanel { } protected void create() { + SimpleContainer container = new SimpleContainer(); + container.setHeight(FIELDSHEIGHT); + VerticalLayoutContainer v = new VerticalLayoutContainer(); - + container.add(v); + btnSave = new TextButton("Save"); btnSave.setIcon(ResourceBundle.INSTANCE.save()); btnSave.setIconAlign(IconAlign.RIGHT); @@ -120,16 +131,16 @@ public class EditRowPanel extends FramedPanel { flowButton.add(btnSave, new BoxLayoutData(new Margins(2, 4, 2, 4))); flowButton.add(btnClose, new BoxLayoutData(new Margins(2, 4, 2, 4))); - ArrayList fields=generateFields(); - for(FieldLabel fl:fields){ - v.add(fl, new VerticalLayoutData(1, -1, - new Margins(1))); - + ArrayList fields = generateFields(); + for (FieldLabel fl : fields) { + v.add(fl, new VerticalLayoutData(1, -1, new Margins(1))); + } - - v.add(flowButton, new VerticalLayoutData(-1, 36, - new Margins(5, 2, 5, 2))); - add(v); + + VerticalLayoutContainer vPanel = new VerticalLayoutContainer(); + vPanel.add(container, new VerticalLayoutData(1, -1)); + vPanel.add(flowButton, new VerticalLayoutData(1, -1, new Margins(1))); + add(vPanel); } @@ -158,194 +169,223 @@ public class EditRowPanel extends FramedPanel { } protected void close() { + parent.close(); } - - - protected ArrayList generateFields(){ - ArrayList fields=new ArrayList(); - - for(ColumnData col:columns){ - if(col.getTypeCode().compareTo(ColumnTypeCode.DIMENSION.toString())==0|| - col.getTypeCode().compareTo(ColumnTypeCode.TIMEDIMENSION.toString())==0) - { - //Dimension Reference + + protected ArrayList generateFields() { + ArrayList fields = new ArrayList(); + + for (ColumnData col : columns) { + if (col.getTypeCode() + .compareTo(ColumnTypeCode.DIMENSION.toString()) == 0 + || col.getTypeCode().compareTo( + ColumnTypeCode.TIMEDIMENSION.toString()) == 0) { + // Dimension Reference ColumnDataPropertiesCombo propsColumnReferenceType = GWT .create(ColumnDataPropertiesCombo.class); final ListStore storeComboColumnReferenceType = new ListStore( propsColumnReferenceType.id()); final ComboBox comboColumnReferenceType = new ComboBox( - storeComboColumnReferenceType, propsColumnReferenceType.label()); + storeComboColumnReferenceType, + propsColumnReferenceType.label()); Log.trace("ComboColumnReferenceType created"); comboColumnReferenceType - .addSelectionHandler(new SelectionHandler() { - public void onSelection(SelectionEvent event) { - Log.debug("ComboColumnReferenceType selected: " - + event.getSelectedItem()); + .addSelectionHandler(new SelectionHandler() { + public void onSelection( + SelectionEvent event) { + Log.debug("ComboColumnReferenceType selected: " + + event.getSelectedItem()); - } + } - }); + }); - comboColumnReferenceType.setEmptyText("Select a Column Reference..."); + comboColumnReferenceType + .setEmptyText("Select a Column Reference..."); comboColumnReferenceType.setWidth(191); comboColumnReferenceType.setEditable(false); comboColumnReferenceType.setTriggerAction(TriggerAction.ALL); - - - //Dimension + + // Dimension TabResourceProperties propsDimensionType = GWT .create(TabResourceProperties.class); ListStore storeComboDimensionType = new ListStore( propsDimensionType.id()); - - final ComboBox comboDimension = new ComboBox(storeComboDimensionType, - propsDimensionType.label()); + final ComboBox comboDimension = new ComboBox( + storeComboDimensionType, propsDimensionType.label()); Log.trace("ComboDimensionType created"); - - comboDimension.addTriggerClickHandler(new TriggerClickHandler() { - @Override - public void onTriggerClick(TriggerClickEvent event) { - Log.debug("ComboDimension TriggerClickEvent"); - CodelistSelectionDialog dialogCodelistSelection = new CodelistSelectionDialog( - eventBus); - CodelistSelectionListener codelistSelectionListener=new CodelistSelectionListener() { - - @Override - public void selected(TabResource tabResource) { - Log.debug("Selected Codelist: " + tabResource); - comboDimension.setValue(tabResource); - TDGWTServiceAsync.INSTANCE.getColumnsForDimension( - tabResource.getTrId(), - new AsyncCallback>() { - - @Override - public void onFailure(Throwable caught) { - Log.debug("Error retrieving columns: " - + caught.getLocalizedMessage()); - UtilsGXT3.alert("Error retrieving columns", - "Error retrieving columns on server!"); - - } - - @Override - public void onSuccess(ArrayList result) { - storeComboColumnReferenceType.clear(); - storeComboColumnReferenceType.addAll(result); - storeComboColumnReferenceType.commitChanges(); - - } - }); - } + comboDimension + .addTriggerClickHandler(new TriggerClickHandler() { @Override - public void aborted() { - Log.debug("Select Codelist Aborted"); + public void onTriggerClick(TriggerClickEvent event) { + Log.debug("ComboDimension TriggerClickEvent"); + CodelistSelectionDialog dialogCodelistSelection = new CodelistSelectionDialog( + eventBus); + CodelistSelectionListener codelistSelectionListener = new CodelistSelectionListener() { + + @Override + public void selected(TabResource tabResource) { + Log.debug("Selected Codelist: " + + tabResource); + comboDimension.setValue(tabResource); + TDGWTServiceAsync.INSTANCE.getColumnsForDimension( + tabResource.getTrId(), + new AsyncCallback>() { + + @Override + public void onFailure( + Throwable caught) { + Log.debug("Error retrieving columns: " + + caught.getLocalizedMessage()); + UtilsGXT3 + .alert("Error retrieving columns", + "Error retrieving columns on server!"); + + } + + @Override + public void onSuccess( + ArrayList result) { + storeComboColumnReferenceType + .clear(); + storeComboColumnReferenceType + .addAll(result); + storeComboColumnReferenceType + .commitChanges(); + + } + }); + } + + @Override + public void aborted() { + Log.debug("Select Codelist Aborted"); + + } + + @Override + public void failed(String reason, + String detail) { + Log.error("Select Codelist Failed[reason: " + + reason + + " , detail:" + + detail + "]"); + + } + }; + + dialogCodelistSelection + .addListener(codelistSelectionListener); + dialogCodelistSelection.show(); + comboDimension.collapse(); } - @Override - public void failed(String reason, String detail) { - Log.error("Select Codelist Failed[reason: " + reason + " , detail:" - + detail + "]"); + }); - } - }; - - dialogCodelistSelection.addListener(codelistSelectionListener); - dialogCodelistSelection.show(); - comboDimension.collapse(); - - } - - }); - - comboDimension.setEmptyText("Select..."); comboDimension.setWidth(191); comboDimension.setEditable(false); comboDimension.setTriggerAction(TriggerAction.ALL); - + HorizontalPanel hpDimension = new HorizontalPanel(); hpDimension.add(comboDimension); hpDimension.add(comboColumnReferenceType); - - FieldLabel comboDimensionLabel = new FieldLabel(hpDimension, col.getLabel()); - comboDimensionLabel.setId(col.getColumnId()); + + FieldLabel comboDimensionLabel = new FieldLabel(hpDimension, + col.getLabel()); + comboDimensionLabel.setId(col.getColumnId()); fields.add(comboDimensionLabel); } else { - if(col.getDataTypeName().compareTo(ColumnDataType.Boolean.toString())==0){ + if (col.getDataTypeName().compareTo( + ColumnDataType.Boolean.toString()) == 0) { Radio radioTrue = new Radio(); - radioTrue.setBoxLabel("true"); - Radio radioFalse = new Radio(); - radioFalse.setBoxLabel("false"); - HorizontalPanel hp = new HorizontalPanel(); - hp.add(radioTrue); - hp.add(radioFalse); - FieldLabel booleanLabel= new FieldLabel(hp, col.getLabel()); - booleanLabel.setId(col.getColumnId()); - fields.add(booleanLabel); + radioTrue.setBoxLabel("true"); + Radio radioFalse = new Radio(); + radioFalse.setBoxLabel("false"); + HorizontalPanel hp = new HorizontalPanel(); + hp.add(radioTrue); + hp.add(radioFalse); + FieldLabel booleanLabel = new FieldLabel(hp, col.getLabel()); + booleanLabel.setId(col.getColumnId()); + fields.add(booleanLabel); } else { - if(col.getDataTypeName().compareTo(ColumnDataType.Date.toString())==0){ + if (col.getDataTypeName().compareTo( + ColumnDataType.Date.toString()) == 0) { DateField date = new DateField(); - FieldLabel dateLabel=new FieldLabel(date, col.getLabel()); + FieldLabel dateLabel = new FieldLabel(date, + col.getLabel()); dateLabel.setId(col.getColumnId()); fields.add(dateLabel); } else { - if(col.getDataTypeName().compareTo(ColumnDataType.Text.toString())==0){ + if (col.getDataTypeName().compareTo( + ColumnDataType.Text.toString()) == 0) { TextField text = new TextField(); text.addValueChangeHandler(new ValueChangeHandler() { @Override - public void onValueChange(ValueChangeEvent event) { - + public void onValueChange( + ValueChangeEvent event) { + } }); - FieldLabel textLabel=new FieldLabel(text, col.getLabel()); + FieldLabel textLabel = new FieldLabel(text, + col.getLabel()); textLabel.setId(col.getColumnId()); fields.add(textLabel); } else { - if(col.getDataTypeName().compareTo(ColumnDataType.Geometry.toString())==0){ + if (col.getDataTypeName().compareTo( + ColumnDataType.Geometry.toString()) == 0) { TextField geometry = new TextField(); geometry.addValueChangeHandler(new ValueChangeHandler() { @Override - public void onValueChange(ValueChangeEvent event) { - + public void onValueChange( + ValueChangeEvent event) { + } }); - FieldLabel geometryLabel=new FieldLabel(geometry, col.getLabel()); + FieldLabel geometryLabel = new FieldLabel( + geometry, col.getLabel()); geometryLabel.setId(col.getColumnId()); fields.add(geometryLabel); } else { - if(col.getDataTypeName().compareTo(ColumnDataType.Integer.toString())==0){ + if (col.getDataTypeName().compareTo( + ColumnDataType.Integer.toString()) == 0) { TextField integ = new TextField(); - + integ.addValueChangeHandler(new ValueChangeHandler() { @Override - public void onValueChange(ValueChangeEvent event) { - + public void onValueChange( + ValueChangeEvent event) { + } }); - FieldLabel integLabel=new FieldLabel(integ, col.getLabel()); + FieldLabel integLabel = new FieldLabel( + integ, col.getLabel()); integLabel.setId(col.getColumnId()); fields.add(integLabel); } else { - if(col.getDataTypeName().compareTo(ColumnDataType.Numeric.toString())==0){ + if (col.getDataTypeName().compareTo( + ColumnDataType.Numeric.toString()) == 0) { TextField numeric = new TextField(); numeric.setId(col.getColumnId()); numeric.addValueChangeHandler(new ValueChangeHandler() { @Override - public void onValueChange(ValueChangeEvent event) { - + public void onValueChange( + ValueChangeEvent event) { + } }); - FieldLabel numericLabel=new FieldLabel(numeric, col.getLabel()); + FieldLabel numericLabel = new FieldLabel( + numeric, col.getLabel()); numericLabel.setId(col.getColumnId()); fields.add(numericLabel); } else { - + } } } @@ -353,12 +393,10 @@ public class EditRowPanel extends FramedPanel { } } } - + } return fields; - + } - - } diff --git a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/rows/RowsDataClient.java b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/rows/RowsDataClient.java new file mode 100644 index 0000000..0073a28 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/rows/RowsDataClient.java @@ -0,0 +1,41 @@ +package org.gcube.portlets.user.td.tablewidget.client.rows; + +import com.allen_sauer.gwt.log.client.Log; +import com.google.gwt.core.client.GWT; +import com.google.gwt.http.client.Request; +import com.google.gwt.http.client.RequestBuilder; +import com.google.gwt.http.client.RequestCallback; +import com.google.gwt.http.client.RequestException; +import com.google.gwt.http.client.Response; + +public class RowsDataClient { + public void retrievesRowsAsJson() { + // Send request to server and catch any errors. + String path = GWT.getModuleBaseURL() + "tdwxrowsdata"; + RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, path); + //builder.setHeader(ServletParameters.TD_SESSION_ID, + // String.valueOf(tdSessionId)); + + try { + Request request = builder.sendRequest(null, new RequestCallback() { + public void onError(Request request, Throwable exception) { + //displayError("Couldn't retrieve JSON"); + } + + public void onResponseReceived(Request request, + Response response) { + if (200 == response.getStatusCode()) { + //updateTable(JsonUtils.safeEval(response.getText())); + } else { + //displayError("Couldn't retrieve JSON (" + // + response.getStatusText() + ")"); + } + } + }); + Log.debug("Request: "+request.toString()); + } catch (RequestException e) { + e.printStackTrace(); + } + + } +} diff --git a/src/main/resources/org/gcube/portlets/user/td/tablewidget/client/resources/pencil.png b/src/main/resources/org/gcube/portlets/user/td/tablewidget/client/resources/pencil.png new file mode 100644 index 0000000..b855178 Binary files /dev/null and b/src/main/resources/org/gcube/portlets/user/td/tablewidget/client/resources/pencil.png differ diff --git a/src/main/resources/org/gcube/portlets/user/td/tablewidget/client/resources/pencil_32.png b/src/main/resources/org/gcube/portlets/user/td/tablewidget/client/resources/pencil_32.png new file mode 100644 index 0000000..b594c3f Binary files /dev/null and b/src/main/resources/org/gcube/portlets/user/td/tablewidget/client/resources/pencil_32.png differ