diff --git a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/geometry/GeometryCreatePointPanel.java b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/geometry/GeometryCreatePointPanel.java
new file mode 100644
index 0000000..70059fe
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/geometry/GeometryCreatePointPanel.java
@@ -0,0 +1,428 @@
+package org.gcube.portlets.user.td.tablewidget.client.geometry;
+
+import java.util.ArrayList;
+
+import org.gcube.portlets.user.td.columnwidget.client.properties.ColumnDataPropertiesCombo;
+import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync;
+import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTIsFinalException;
+import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTIsLockedException;
+import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpiredException;
+import org.gcube.portlets.user.td.gwtservice.shared.geospatial.GeospatialCreateCoordinatesSession;
+import org.gcube.portlets.user.td.gwtservice.shared.tr.ColumnData;
+import org.gcube.portlets.user.td.monitorwidget.client.MonitorDialog;
+import org.gcube.portlets.user.td.monitorwidget.client.MonitorDialogListener;
+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.client.event.ChangeTableRequestEvent;
+import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent;
+import org.gcube.portlets.user.td.widgetcommonevent.client.type.ChangeTableRequestType;
+import org.gcube.portlets.user.td.widgetcommonevent.client.type.ChangeTableWhy;
+import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType;
+import org.gcube.portlets.user.td.widgetcommonevent.shared.OperationResult;
+import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
+import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnDataType;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.logical.shared.SelectionEvent;
+import com.google.gwt.event.logical.shared.SelectionHandler;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.web.bindery.event.shared.EventBus;
+import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign;
+import com.sencha.gxt.cell.core.client.form.ComboBoxCell.TriggerAction;
+import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode;
+import com.sencha.gxt.core.client.util.Margins;
+import com.sencha.gxt.data.shared.LabelProvider;
+import com.sencha.gxt.data.shared.ListStore;
+import com.sencha.gxt.widget.core.client.FramedPanel;
+import com.sencha.gxt.widget.core.client.button.TextButton;
+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;
+import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
+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;
+
+/**
+ *
+ * @author "Giancarlo Panichi" g.panichi@isti.cnr.it
+ *
+ */
+public class GeometryCreatePointPanel extends FramedPanel implements
+ MonitorDialogListener {
+ private static final String WIDTH = "640px";
+ private static final String HEIGHT = "520px";
+
+ private TRId trId;
+ private EventBus eventBus;
+ private boolean created;
+
+ private ArrayList columns;
+ private VerticalLayoutContainer vl;
+
+ private TextButton createPointButton;
+ private ComboBox comboLatitude;
+ private ComboBox comboLongitude;
+ private ListStore storeComboLatitude;
+ private ListStore storeComboLongitude;
+
+ public GeometryCreatePointPanel(TRId trId, EventBus eventBus) {
+ super();
+ this.trId = trId;
+
+ this.eventBus = eventBus;
+ this.created = false;
+ forceLayoutOnResize = true;
+ retrieveColumns();
+
+ }
+
+ protected void testCreated() {
+ if (created) {
+ updateCombo();
+ } else {
+ created = true;
+ create();
+ }
+ }
+
+ protected void updateCombo() {
+ storeComboLatitude.clear();
+ storeComboLatitude.addAll(columns);
+ storeComboLatitude.commitChanges();
+ comboLatitude.reset();
+ comboLatitude.clear();
+
+ storeComboLongitude.clear();
+ storeComboLongitude.addAll(columns);
+ storeComboLongitude.commitChanges();
+ comboLongitude.reset();
+ comboLongitude.clear();
+
+ onResize();
+ forceLayout();
+
+ }
+
+ protected void create() {
+
+ setWidth(WIDTH);
+ setHeight(HEIGHT);
+ setHeaderVisible(false);
+ setBodyBorder(false);
+
+ Log.debug("Create GeometryPointPanel(): ["
+ + trId.toString() + "]");
+
+ // Column Propierties
+ ColumnDataPropertiesCombo propsColumnData = GWT
+ .create(ColumnDataPropertiesCombo.class);
+
+ // Latitude
+ storeComboLatitude = new ListStore(propsColumnData.id());
+ storeComboLatitude.addAll(columns);
+
+ comboLatitude = new ComboBox(storeComboLatitude,
+ propsColumnData.label());
+ Log.trace("Combo ColumnData created");
+
+ addHandlersForComboColumnLatitude(propsColumnData.label());
+
+ comboLatitude.setEmptyText("Select a column...");
+ comboLatitude.setWidth(191);
+ comboLatitude.setTypeAhead(false);
+ comboLatitude.setEditable(false);
+ comboLatitude.setTriggerAction(TriggerAction.ALL);
+
+ // Longitude
+ storeComboLongitude = new ListStore(propsColumnData.id());
+ storeComboLongitude.addAll(columns);
+
+ comboLongitude = new ComboBox(storeComboLongitude,
+ propsColumnData.label());
+ Log.trace("Combo ColumnData created");
+
+ addHandlersForComboColumnLongitude(propsColumnData.label());
+
+ comboLongitude.setEmptyText("Select a column...");
+ comboLongitude.setWidth(191);
+ comboLongitude.setTypeAhead(false);
+ comboLongitude.setEditable(false);
+ comboLongitude.setTriggerAction(TriggerAction.ALL);
+
+
+ // Create
+ createPointButton = new TextButton("Create");
+ createPointButton.setIcon(ResourceBundle.INSTANCE
+ .geospatialCoordinates());
+ createPointButton.setIconAlign(IconAlign.RIGHT);
+ createPointButton.setTitle("Create Point");
+
+ createPointButton.addSelectHandler(new SelectHandler() {
+
+ public void onSelect(SelectEvent event) {
+ onGeometryCreatePoint();
+
+ }
+ });
+
+ vl = new VerticalLayoutContainer();
+ vl.setScrollMode(ScrollMode.AUTO);
+ vl.setAdjustForScroll(true);
+
+ vl.add(new FieldLabel(comboLatitude, "Latitude"),
+ new VerticalLayoutData(1, -1));
+
+ vl.add(new FieldLabel(comboLongitude, "Longitude"),
+ new VerticalLayoutData(1, -1));
+
+
+ vl.add(createPointButton, new VerticalLayoutData(-1, -1,
+ new Margins(10, 0, 10, 0)));
+
+ add(vl);
+
+
+
+ onResize();
+ }
+
+ private void addHandlersForComboColumnLatitude(
+ final LabelProvider labelProvider) {
+ comboLatitude.addSelectionHandler(new SelectionHandler() {
+
+ @Override
+ public void onSelection(SelectionEvent event) {
+ Info.display(
+ "Latitude Selected",
+ "You selected "
+ + (event.getSelectedItem() == null ? "nothing"
+ : labelProvider.getLabel(event
+ .getSelectedItem()) + "!"));
+ Log.debug("Latitude selected: " + event.getSelectedItem());
+ ColumnData latitude = event.getSelectedItem();
+ updatedLatitude(latitude);
+
+ }
+
+ });
+
+ }
+
+ protected void updatedLatitude(ColumnData latitude) {
+ // TODO Auto-generated method stub
+
+ }
+
+ private void addHandlersForComboColumnLongitude(
+ final LabelProvider labelProvider) {
+ comboLongitude.addSelectionHandler(new SelectionHandler() {
+
+ @Override
+ public void onSelection(SelectionEvent event) {
+ Info.display(
+ "Longitude Selected",
+ "You selected "
+ + (event.getSelectedItem() == null ? "nothing"
+ : labelProvider.getLabel(event
+ .getSelectedItem()) + "!"));
+ Log.debug("Longitude selected: " + event.getSelectedItem());
+ ColumnData longitude = event.getSelectedItem();
+ updatedLongitude(longitude);
+
+ }
+
+ });
+
+ }
+
+ protected void updatedLongitude(ColumnData longitude) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+
+
+
+ protected void onGeometryCreatePoint() {
+ ColumnData latitude = comboLatitude.getCurrentValue();
+ if (latitude != null) {
+ ColumnData longitude = comboLongitude.getCurrentValue();
+ if (longitude != null) {
+ /*GeospatialCoordinatesType type=null;
+ GeospatialCreateCoordinatesSession gsCreateCoordinatesSession = new GeospatialCreateCoordinatesSession(
+ trId, latitude, longitude, type, null, null);
+ callGeometryCreatePoint(gsCreateCoordinatesSession);*/
+
+ } else {
+ UtilsGXT3.alert("Attention", "Select Longitude!");
+ }
+ } else {
+ UtilsGXT3.alert("Attention", "Select Latitude!");
+ }
+ }
+
+ private void callGeometryCreatePoint(
+ GeospatialCreateCoordinatesSession gsCreateCoordinatesSession) {
+ TDGWTServiceAsync.INSTANCE.startGeospatialCreateCoordinates(
+ gsCreateCoordinatesSession, new AsyncCallback() {
+
+ public void onFailure(Throwable caught) {
+ if (caught instanceof TDGWTSessionExpiredException) {
+ eventBus.fireEvent(new SessionExpiredEvent(
+ SessionExpiredType.EXPIREDONSERVER));
+ } else {
+ if (caught instanceof TDGWTIsLockedException) {
+ Log.error(caught.getLocalizedMessage());
+ UtilsGXT3.alert("Error Locked",
+ caught.getLocalizedMessage());
+ } else {
+ if (caught instanceof TDGWTIsFinalException) {
+ Log.error(caught.getLocalizedMessage());
+ UtilsGXT3.alert("Error Final",
+ caught.getLocalizedMessage());
+ } else {
+ Log.debug("Create Geospatial Coordinates Error: "
+ + caught.getLocalizedMessage());
+ UtilsGXT3
+ .alert("Error Creating Geospatial Coordinates",
+ "Error creating geospatial coordinates: "
+ + caught.getLocalizedMessage());
+ }
+ }
+ }
+ }
+
+ public void onSuccess(String taskId) {
+ openMonitorDialog(taskId);
+
+ }
+
+ });
+
+ }
+
+ protected void retrieveColumns() {
+ TDGWTServiceAsync.INSTANCE.getColumns(trId,
+ new AsyncCallback>() {
+
+ public void onFailure(Throwable caught) {
+ if (caught instanceof TDGWTSessionExpiredException) {
+ eventBus.fireEvent(new SessionExpiredEvent(
+ SessionExpiredType.EXPIREDONSERVER));
+ } else {
+ if (caught instanceof TDGWTIsLockedException) {
+ Log.error(caught.getLocalizedMessage());
+ UtilsGXT3.alert("Error Locked",
+ caught.getLocalizedMessage());
+ } else {
+ if (caught instanceof TDGWTIsFinalException) {
+ Log.error(caught.getLocalizedMessage());
+ UtilsGXT3.alert("Error Final",
+ caught.getLocalizedMessage());
+ } else {
+ Log.error("load combo failure:"
+ + caught.getLocalizedMessage());
+ UtilsGXT3.alert("Error",
+ "Error retrieving columns of tabular resource:"
+ + trId.getId());
+ }
+ }
+ }
+
+ }
+
+ public void onSuccess(ArrayList result) {
+ Log.trace("loaded " + result.size() + " ColumnData");
+ columns = new ArrayList();
+
+ for (ColumnData column : result) {
+ ColumnDataType columnDataType = ColumnDataType
+ .getColumnDataTypeFromId(column
+ .getDataTypeName());
+ if (columnDataType
+ .compareTo(ColumnDataType.Integer) == 0
+ || columnDataType
+ .compareTo(ColumnDataType.Numeric) == 0) {
+ columns.add(column);
+ }
+
+ }
+ if (columns.size() < 1) {
+ Log.debug("Attention no Integer or Numeric column is present in the tabular resource");
+ UtilsGXT3
+ .alert("Attention",
+ "No Integer or Numeric column is present in the tabular resource!");
+ }
+ testCreated();
+
+ }
+
+ });
+
+ }
+
+ public void update(TRId trId) {
+ this.trId = trId;
+
+ retrieveColumns();
+ }
+
+ protected void close() {
+ /*
+ * if (parent != null) { parent.close(); }
+ */
+ }
+
+ // /
+ protected void openMonitorDialog(String taskId) {
+ MonitorDialog monitorDialog = new MonitorDialog(taskId, eventBus);
+ monitorDialog.addProgressDialogListener(this);
+ monitorDialog.show();
+ }
+
+ @Override
+ public void operationComplete(OperationResult operationResult) {
+ ChangeTableWhy why = ChangeTableWhy.TABLEUPDATED;
+ ChangeTableRequestEvent changeTableRequestEvent = new ChangeTableRequestEvent(
+ ChangeTableRequestType.GEOSPATIALCREATECOORDINATES,
+ operationResult.getTrId(), why);
+ eventBus.fireEvent(changeTableRequestEvent);
+ close();
+ }
+
+ @Override
+ public void operationFailed(Throwable caught, String reason, String details) {
+ UtilsGXT3.alert(reason, details);
+ close();
+
+ }
+
+ @Override
+ public void operationStopped(OperationResult operationResult,
+ String reason, String details) {
+ ChangeTableWhy why = ChangeTableWhy.TABLECURATION;
+ ChangeTableRequestEvent changeTableRequestEvent = new ChangeTableRequestEvent(
+ ChangeTableRequestType.GEOSPATIALCREATECOORDINATES,
+ operationResult.getTrId(), why);
+ eventBus.fireEvent(changeTableRequestEvent);
+ close();
+
+ }
+
+ @Override
+ public void operationAborted() {
+ close();
+
+ }
+
+ @Override
+ public void operationPutInBackground() {
+ close();
+
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/geospatial/GeospatialCreateCoordinatesPanel.java b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/geospatial/GeospatialCreateCoordinatesPanel.java
index 087afcc..206be6e 100644
--- a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/geospatial/GeospatialCreateCoordinatesPanel.java
+++ b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/geospatial/GeospatialCreateCoordinatesPanel.java
@@ -30,12 +30,17 @@ import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.core.client.GWT;
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.user.client.ui.HasValue;
+import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.web.bindery.event.shared.EventBus;
import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign;
import com.sencha.gxt.cell.core.client.form.ComboBoxCell.TriggerAction;
import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode;
import com.sencha.gxt.core.client.util.Margins;
+import com.sencha.gxt.core.client.util.ToggleGroup;
import com.sencha.gxt.data.shared.LabelProvider;
import com.sencha.gxt.data.shared.ListStore;
import com.sencha.gxt.widget.core.client.FramedPanel;
@@ -46,6 +51,7 @@ import com.sencha.gxt.widget.core.client.event.SelectEvent;
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
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.Radio;
import com.sencha.gxt.widget.core.client.info.Info;
/**
@@ -65,6 +71,7 @@ public class GeospatialCreateCoordinatesPanel extends FramedPanel implements
private boolean created;
private ArrayList columns;
+ private ArrayList quadrantColumns;
private VerticalLayoutContainer vl;
private TextButton createCoordinatesButton;
@@ -73,6 +80,12 @@ public class GeospatialCreateCoordinatesPanel extends FramedPanel implements
private ComboBox comboGsCoordinatesType;
private ListStore storeComboLatitude;
private ListStore storeComboLongitude;
+ private ListStore storeComboQuadrant;
+ private ComboBox comboQuadrant;
+ private Radio hasQuadrantTrue;
+ private Radio hasQuadrantFalse;
+ private FieldLabel comboQuadrantField;
+ private FieldLabel hasQuadrantField;
public GeospatialCreateCoordinatesPanel(TRId trId,
RequestProperties requestProperties, EventBus eventBus) {
@@ -111,15 +124,20 @@ public class GeospatialCreateCoordinatesPanel extends FramedPanel implements
comboLongitude.reset();
comboLongitude.clear();
- if (gsCoordinatesType != null) {
- comboGsCoordinatesType.setValue(gsCoordinatesType);
- }
+ storeComboQuadrant.clear();
+ storeComboQuadrant.addAll(quadrantColumns);
+ storeComboQuadrant.commitChanges();
+ comboQuadrant.reset();
+ comboQuadrant.clear();
- onResize();
- forceLayout();
+ updateForCoordinatesType();
+
+
}
+
+
protected void create() {
setWidth(WIDTH);
@@ -141,7 +159,7 @@ public class GeospatialCreateCoordinatesPanel extends FramedPanel implements
comboLatitude = new ComboBox(storeComboLatitude,
propsColumnData.label());
- Log.trace("Combo ColumnData created");
+ Log.trace("Combo Latide created");
addHandlersForComboColumnLatitude(propsColumnData.label());
@@ -157,7 +175,7 @@ public class GeospatialCreateCoordinatesPanel extends FramedPanel implements
comboLongitude = new ComboBox(storeComboLongitude,
propsColumnData.label());
- Log.trace("Combo ColumnData created");
+ Log.trace("Combo Longitude created");
addHandlersForComboColumnLongitude(propsColumnData.label());
@@ -178,7 +196,7 @@ public class GeospatialCreateCoordinatesPanel extends FramedPanel implements
comboGsCoordinatesType = new ComboBox(
storeComboGsCoordinatesType,
propsGeospatialCoordinatesType.label());
- Log.trace("Combo ColumnData created");
+ Log.trace("Combo Geospatial Column Type created");
addHandlersForComboGsCoordinatesType(propsGeospatialCoordinatesType
.label());
@@ -189,6 +207,67 @@ public class GeospatialCreateCoordinatesPanel extends FramedPanel implements
comboGsCoordinatesType.setEditable(false);
comboGsCoordinatesType.setTriggerAction(TriggerAction.ALL);
+ // Has Quadrant
+ hasQuadrantTrue = new Radio();
+ hasQuadrantTrue.setBoxLabel("True");
+ hasQuadrantTrue.setValue(true);
+
+ hasQuadrantFalse = new Radio();
+ hasQuadrantFalse.setBoxLabel("False");
+
+ ToggleGroup hasQuadrantGroup = new ToggleGroup();
+ hasQuadrantGroup.add(hasQuadrantTrue);
+ hasQuadrantGroup.add(hasQuadrantFalse);
+
+ hasQuadrantGroup
+ .addValueChangeHandler(new ValueChangeHandler>() {
+
+ @Override
+ public void onValueChange(
+ ValueChangeEvent> event) {
+ try {
+ if (hasQuadrantTrue.getValue()) {
+ comboQuadrantField.setVisible(true);
+ } else {
+ comboQuadrantField.setVisible(false);
+ }
+
+ forceLayout();
+
+ } catch (Exception e) {
+ Log.error("ToggleGroup: onValueChange "
+ + e.getLocalizedMessage());
+ }
+
+ }
+ });
+
+ HorizontalPanel hasQuadrantPanel = new HorizontalPanel();
+ hasQuadrantPanel.add(hasQuadrantTrue);
+ hasQuadrantPanel.add(hasQuadrantFalse);
+
+ hasQuadrantField = new FieldLabel(hasQuadrantPanel, "Has Quadrant");
+ hasQuadrantField
+ .setToolTip("Select true if you want select quadrant column");
+
+ // Quadrant
+ storeComboQuadrant = new ListStore(propsColumnData.id());
+ storeComboQuadrant.addAll(quadrantColumns);
+
+ comboQuadrant = new ComboBox(storeComboQuadrant,
+ propsColumnData.label());
+ Log.trace("Combo Quadrant created");
+
+ addHandlersForComboQuadrant(propsColumnData.label());
+
+ comboQuadrant.setEmptyText("Select a column...");
+ comboQuadrant.setWidth(191);
+ comboQuadrant.setTypeAhead(false);
+ comboQuadrant.setEditable(false);
+ comboQuadrant.setTriggerAction(TriggerAction.ALL);
+
+ comboQuadrantField = new FieldLabel(comboQuadrant, "Quadrant");
+
// Create
createCoordinatesButton = new TextButton("Create");
createCoordinatesButton.setIcon(ResourceBundle.INSTANCE
@@ -217,16 +296,18 @@ public class GeospatialCreateCoordinatesPanel extends FramedPanel implements
vl.add(new FieldLabel(comboGsCoordinatesType, "Type"),
new VerticalLayoutData(1, -1));
+ vl.add(hasQuadrantField, new VerticalLayoutData(-1, -1));
+
+ vl.add(comboQuadrantField, new VerticalLayoutData(1, -1));
+
vl.add(createCoordinatesButton, new VerticalLayoutData(-1, -1,
new Margins(10, 0, 10, 0)));
add(vl);
- if (gsCoordinatesType != null) {
- comboGsCoordinatesType.setValue(gsCoordinatesType);
- }
+ updateForCoordinatesType();
- onResize();
+
}
private void addHandlersForComboColumnLatitude(
@@ -301,7 +382,7 @@ public class GeospatialCreateCoordinatesPanel extends FramedPanel implements
Log.debug("Type selected: " + event.getSelectedItem());
GeospatialCoordinatesType type = event
.getSelectedItem();
- updatedType(type);
+ updatedComboGsCoordinatesType(type);
}
@@ -309,11 +390,71 @@ public class GeospatialCreateCoordinatesPanel extends FramedPanel implements
}
- protected void updatedType(GeospatialCoordinatesType type) {
- // TODO Auto-generated method stub
+ protected void updatedComboGsCoordinatesType(GeospatialCoordinatesType type) {
+ gsCoordinatesType=type;
+ updateForCoordinatesType();
+
+ }
+
+ protected void updateForCoordinatesType() {
+ switch (gsCoordinatesType) {
+ case C_SQUARE:
+ hasQuadrantField.setVisible(false);
+ comboQuadrantField.setVisible(false);
+ comboGsCoordinatesType.setValue(gsCoordinatesType);
+ break;
+ case OCEAN_AREA:
+ hasQuadrantTrue.setValue(true);
+ hasQuadrantField.setVisible(true);
+ comboQuadrantField.setVisible(true);
+ comboGsCoordinatesType.setValue(gsCoordinatesType);
+ break;
+ default:
+ hasQuadrantField.setVisible(false);
+ comboQuadrantField.setVisible(false);
+ break;
+ }
+
+ onResize();
+ forceLayout();
+ }
+
+
+ private void addHandlersForComboQuadrant(
+ final LabelProvider labelProvider) {
+ comboQuadrant.addSelectionHandler(new SelectionHandler() {
+
+ @Override
+ public void onSelection(SelectionEvent event) {
+ Info.display(
+ "Quadrant Selected",
+ "You selected "
+ + (event.getSelectedItem() == null ? "nothing"
+ : labelProvider.getLabel(event
+ .getSelectedItem()) + "!"));
+ Log.debug("Quadrant selected: " + event.getSelectedItem());
+ ColumnData quadrant = event.getSelectedItem();
+ updatedQuadrant(quadrant);
+
+ }
+
+ });
}
+ protected void updatedQuadrant(ColumnData quadrant) {
+ // TODO Auto-generated method stub
+
+ }
+
+ protected boolean hasQuadrant() {
+ if (hasQuadrantTrue.getValue()) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
protected void onGeospatialCreateCoordinates() {
ColumnData latitude = comboLatitude.getCurrentValue();
if (latitude != null) {
@@ -322,9 +463,41 @@ public class GeospatialCreateCoordinatesPanel extends FramedPanel implements
GeospatialCoordinatesType type = comboGsCoordinatesType
.getCurrentValue();
if (type != null) {
- GeospatialCreateCoordinatesSession gsCreateCoordinatesSession = new GeospatialCreateCoordinatesSession(
- trId, latitude, longitude, type);
- callGeospatialCreateCoordinates(gsCreateCoordinatesSession);
+ GeospatialCreateCoordinatesSession gsCreateCoordinatesSession;
+ switch(type){
+ case C_SQUARE:
+ gsCreateCoordinatesSession = new GeospatialCreateCoordinatesSession(
+ trId, latitude, longitude, type, false, null);
+ callGeospatialCreateCoordinates(gsCreateCoordinatesSession);
+ break;
+ case OCEAN_AREA:
+ if(hasQuadrant()){
+ ColumnData quadrant = comboQuadrant.getCurrentValue();
+ if(quadrant!=null){
+ gsCreateCoordinatesSession = new GeospatialCreateCoordinatesSession(
+ trId, latitude, longitude, type, true, quadrant);
+ callGeospatialCreateCoordinates(gsCreateCoordinatesSession);
+ } else {
+ UtilsGXT3.alert("Attention",
+ "Select Quadrant column!");
+ break;
+ }
+
+ } else {
+ gsCreateCoordinatesSession = new GeospatialCreateCoordinatesSession(
+ trId, latitude, longitude, type, false, null);
+ callGeospatialCreateCoordinates(gsCreateCoordinatesSession);
+ }
+
+
+ break;
+ default:
+ UtilsGXT3.alert("Attention",
+ "Select valid geospatial coordinates type!");
+ break;
+
+ }
+
} else {
UtilsGXT3.alert("Attention",
"Invalid Geospatial Coordinates Type!");
@@ -417,10 +590,14 @@ public class GeospatialCreateCoordinatesPanel extends FramedPanel implements
.getColumnDataTypeFromId(column
.getDataTypeName());
if (columnDataType
- .compareTo(ColumnDataType.Integer) == 0
- || columnDataType
- .compareTo(ColumnDataType.Numeric) == 0) {
+ .compareTo(ColumnDataType.Numeric) == 0) {
columns.add(column);
+ } else {
+ if (columnDataType
+ .compareTo(ColumnDataType.Integer) == 0) {
+ columns.add(column);
+ quadrantColumns.add(column);
+ }
}
}