Change-Id: Ia2b74c6d6b99ef9ec5aa0d41956c55ebd8a2615atags/7.4.0.beta1
import com.vaadin.client.ComponentConnector; | import com.vaadin.client.ComponentConnector; | ||||
import com.vaadin.client.ServerConnector; | import com.vaadin.client.ServerConnector; | ||||
import com.vaadin.client.communication.JSONSerializer; | import com.vaadin.client.communication.JSONSerializer; | ||||
import com.vaadin.client.connectors.AbstractRendererConnector; | |||||
import com.vaadin.client.ui.UnknownComponentConnector; | import com.vaadin.client.ui.UnknownComponentConnector; | ||||
import com.vaadin.client.ui.grid.renderers.AbstractRendererConnector; | |||||
import com.vaadin.shared.communication.ClientRpc; | import com.vaadin.shared.communication.ClientRpc; | ||||
import com.vaadin.shared.communication.ServerRpc; | import com.vaadin.shared.communication.ServerRpc; | ||||
import com.vaadin.shared.ui.Connect; | import com.vaadin.shared.ui.Connect; |
import com.google.gwt.core.ext.typeinfo.JMethod; | import com.google.gwt.core.ext.typeinfo.JMethod; | ||||
import com.google.gwt.core.ext.typeinfo.JParameterizedType; | import com.google.gwt.core.ext.typeinfo.JParameterizedType; | ||||
import com.google.gwt.core.ext.typeinfo.JType; | import com.google.gwt.core.ext.typeinfo.JType; | ||||
import com.vaadin.client.ui.grid.renderers.AbstractRendererConnector; | |||||
import com.vaadin.client.connectors.AbstractRendererConnector; | |||||
/** | /** | ||||
* Generates type data for renderer connectors. | * Generates type data for renderer connectors. |
* License for the specific language governing permissions and limitations under | * License for the specific language governing permissions and limitations under | ||||
* the License. | * the License. | ||||
*/ | */ | ||||
package com.vaadin.client.ui.grid.renderers; | |||||
package com.vaadin.client.connectors; | |||||
import com.google.gwt.json.client.JSONValue; | import com.google.gwt.json.client.JSONValue; | ||||
import com.vaadin.client.ServerConnector; | import com.vaadin.client.ServerConnector; | ||||
import com.vaadin.client.metadata.Type; | import com.vaadin.client.metadata.Type; | ||||
import com.vaadin.client.metadata.TypeData; | import com.vaadin.client.metadata.TypeData; | ||||
import com.vaadin.client.metadata.TypeDataStore; | import com.vaadin.client.metadata.TypeDataStore; | ||||
import com.vaadin.client.ui.grid.GridConnector; | |||||
import com.vaadin.client.ui.grid.Renderer; | import com.vaadin.client.ui.grid.Renderer; | ||||
/** | /** | ||||
* Creates a new Renderer instance associated with this renderer connector. | * Creates a new Renderer instance associated with this renderer connector. | ||||
* <p> | * <p> | ||||
* You should typically not override this method since the framework by | * You should typically not override this method since the framework by | ||||
* default generates an implementation that uses {@link GWT#create(Class)} | |||||
* to create a renderer of the same type as returned by the most specific | |||||
* override of {@link #getRenderer()}. If you do override the method, you | |||||
* can't call <code>super.createRenderer()</code> since the metadata needed | |||||
* for that implementation is not generated if there's an override of the | |||||
* method. | |||||
* default generates an implementation that uses | |||||
* {@link com.google.gwt.core.client.GWT#create(Class)} to create a renderer | |||||
* of the same type as returned by the most specific override of | |||||
* {@link #getRenderer()}. If you do override the method, you can't call | |||||
* <code>super.createRenderer()</code> since the metadata needed for that | |||||
* implementation is not generated if there's an override of the method. | |||||
* | * | ||||
* @return a new renderer to be used with this connector | * @return a new renderer to be used with this connector | ||||
*/ | */ |
* License for the specific language governing permissions and limitations under | * License for the specific language governing permissions and limitations under | ||||
* the License. | * the License. | ||||
*/ | */ | ||||
package com.vaadin.client.ui.grid.renderers; | |||||
package com.vaadin.client.connectors; | |||||
import com.google.gwt.json.client.JSONObject; | import com.google.gwt.json.client.JSONObject; | ||||
import com.google.web.bindery.event.shared.HandlerRegistration; | import com.google.web.bindery.event.shared.HandlerRegistration; | ||||
import com.vaadin.client.ui.grid.renderers.ButtonRenderer; | |||||
import com.vaadin.client.ui.grid.renderers.ClickableRenderer.RendererClickHandler; | import com.vaadin.client.ui.grid.renderers.ClickableRenderer.RendererClickHandler; | ||||
import com.vaadin.shared.ui.Connect; | import com.vaadin.shared.ui.Connect; | ||||
* License for the specific language governing permissions and limitations under | * License for the specific language governing permissions and limitations under | ||||
* the License. | * the License. | ||||
*/ | */ | ||||
package com.vaadin.client.ui.grid.renderers; | |||||
package com.vaadin.client.connectors; | |||||
import com.google.gwt.json.client.JSONObject; | import com.google.gwt.json.client.JSONObject; | ||||
import com.google.web.bindery.event.shared.HandlerRegistration; | import com.google.web.bindery.event.shared.HandlerRegistration; |
* License for the specific language governing permissions and limitations under | * License for the specific language governing permissions and limitations under | ||||
* the License. | * the License. | ||||
*/ | */ | ||||
package com.vaadin.client.ui.grid.renderers; | |||||
package com.vaadin.client.connectors; | |||||
import com.vaadin.shared.ui.Connect; | import com.vaadin.shared.ui.Connect; | ||||
* the License. | * the License. | ||||
*/ | */ | ||||
package com.vaadin.client.ui.grid; | |||||
package com.vaadin.client.connectors; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.Arrays; | import java.util.Arrays; | ||||
import com.vaadin.client.ConnectorHierarchyChangeEvent; | import com.vaadin.client.ConnectorHierarchyChangeEvent; | ||||
import com.vaadin.client.annotations.OnStateChange; | import com.vaadin.client.annotations.OnStateChange; | ||||
import com.vaadin.client.communication.StateChangeEvent; | import com.vaadin.client.communication.StateChangeEvent; | ||||
import com.vaadin.client.connectors.RpcDataSourceConnector.RpcDataSource; | |||||
import com.vaadin.client.data.DataSource.RowHandle; | import com.vaadin.client.data.DataSource.RowHandle; | ||||
import com.vaadin.client.data.RpcDataSourceConnector.RpcDataSource; | |||||
import com.vaadin.client.ui.AbstractFieldConnector; | import com.vaadin.client.ui.AbstractFieldConnector; | ||||
import com.vaadin.client.ui.AbstractHasComponentsConnector; | import com.vaadin.client.ui.AbstractHasComponentsConnector; | ||||
import com.vaadin.client.ui.SimpleManagedLayout; | import com.vaadin.client.ui.SimpleManagedLayout; | ||||
import com.vaadin.client.ui.grid.EditorRowHandler; | |||||
import com.vaadin.client.ui.grid.Grid; | |||||
import com.vaadin.client.ui.grid.Grid.CellStyleGenerator; | import com.vaadin.client.ui.grid.Grid.CellStyleGenerator; | ||||
import com.vaadin.client.ui.grid.Grid.FooterCell; | import com.vaadin.client.ui.grid.Grid.FooterCell; | ||||
import com.vaadin.client.ui.grid.Grid.FooterRow; | import com.vaadin.client.ui.grid.Grid.FooterRow; | ||||
import com.vaadin.client.ui.grid.Grid.HeaderCell; | import com.vaadin.client.ui.grid.Grid.HeaderCell; | ||||
import com.vaadin.client.ui.grid.Grid.HeaderRow; | import com.vaadin.client.ui.grid.Grid.HeaderRow; | ||||
import com.vaadin.client.ui.grid.renderers.AbstractRendererConnector; | |||||
import com.vaadin.client.ui.grid.GridColumn; | |||||
import com.vaadin.client.ui.grid.Renderer; | |||||
import com.vaadin.client.ui.grid.selection.AbstractRowHandleSelectionModel; | import com.vaadin.client.ui.grid.selection.AbstractRowHandleSelectionModel; | ||||
import com.vaadin.client.ui.grid.selection.SelectionChangeEvent; | import com.vaadin.client.ui.grid.selection.SelectionChangeEvent; | ||||
import com.vaadin.client.ui.grid.selection.SelectionChangeHandler; | import com.vaadin.client.ui.grid.selection.SelectionChangeHandler; | ||||
*/ | */ | ||||
private native void selectByHandle(RowHandle<JSONObject> handle) | private native void selectByHandle(RowHandle<JSONObject> handle) | ||||
/*-{ | /*-{ | ||||
var model = this.@com.vaadin.client.ui.grid.GridConnector::selectionModel; | |||||
var model = this.@com.vaadin.client.connectors.GridConnector::selectionModel; | |||||
model.@com.vaadin.client.ui.grid.selection.AbstractRowHandleSelectionModel::selectByHandle(*)(handle); | model.@com.vaadin.client.ui.grid.selection.AbstractRowHandleSelectionModel::selectByHandle(*)(handle); | ||||
}-*/; | }-*/; | ||||
*/ | */ | ||||
private native void deselectByHandle(RowHandle<JSONObject> handle) | private native void deselectByHandle(RowHandle<JSONObject> handle) | ||||
/*-{ | /*-{ | ||||
var model = this.@com.vaadin.client.ui.grid.GridConnector::selectionModel; | |||||
var model = this.@com.vaadin.client.connectors.GridConnector::selectionModel; | |||||
model.@com.vaadin.client.ui.grid.selection.AbstractRowHandleSelectionModel::deselectByHandle(*)(handle); | model.@com.vaadin.client.ui.grid.selection.AbstractRowHandleSelectionModel::deselectByHandle(*)(handle); | ||||
}-*/; | }-*/; | ||||
* License for the specific language governing permissions and limitations under | * License for the specific language governing permissions and limitations under | ||||
* the License. | * the License. | ||||
*/ | */ | ||||
package com.vaadin.client.ui.grid.renderers; | |||||
package com.vaadin.client.connectors; | |||||
import com.google.gwt.json.client.JSONObject; | import com.google.gwt.json.client.JSONObject; | ||||
import com.google.gwt.json.client.JSONValue; | import com.google.gwt.json.client.JSONValue; | ||||
import com.vaadin.client.communication.JsonDecoder; | import com.vaadin.client.communication.JsonDecoder; | ||||
import com.vaadin.client.metadata.TypeDataStore; | import com.vaadin.client.metadata.TypeDataStore; | ||||
import com.vaadin.client.ui.grid.renderers.ClickableRenderer.RendererClickHandler; | import com.vaadin.client.ui.grid.renderers.ClickableRenderer.RendererClickHandler; | ||||
import com.vaadin.client.ui.grid.renderers.ImageRenderer; | |||||
import com.vaadin.shared.communication.URLReference; | import com.vaadin.shared.communication.URLReference; | ||||
import com.vaadin.shared.ui.Connect; | import com.vaadin.shared.ui.Connect; | ||||
* License for the specific language governing permissions and limitations under | * License for the specific language governing permissions and limitations under | ||||
* the License. | * the License. | ||||
*/ | */ | ||||
package com.vaadin.client.ui.grid.renderers; | |||||
package com.vaadin.client.connectors; | |||||
import com.vaadin.shared.ui.Connect; | import com.vaadin.shared.ui.Connect; | ||||
* License for the specific language governing permissions and limitations under | * License for the specific language governing permissions and limitations under | ||||
* the License. | * the License. | ||||
*/ | */ | ||||
package com.vaadin.client.ui.grid.renderers; | |||||
package com.vaadin.client.connectors; | |||||
import com.vaadin.client.ui.grid.renderers.ProgressBarRenderer; | |||||
import com.vaadin.shared.ui.Connect; | import com.vaadin.shared.ui.Connect; | ||||
/** | /** |
* the License. | * the License. | ||||
*/ | */ | ||||
package com.vaadin.client.data; | |||||
package com.vaadin.client.connectors; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import com.google.gwt.json.client.JSONString; | import com.google.gwt.json.client.JSONString; | ||||
import com.google.gwt.json.client.JSONValue; | import com.google.gwt.json.client.JSONValue; | ||||
import com.vaadin.client.ServerConnector; | import com.vaadin.client.ServerConnector; | ||||
import com.vaadin.client.data.AbstractRemoteDataSource; | |||||
import com.vaadin.client.extensions.AbstractExtensionConnector; | import com.vaadin.client.extensions.AbstractExtensionConnector; | ||||
import com.vaadin.client.ui.grid.GridConnector; | |||||
import com.vaadin.shared.data.DataProviderRpc; | import com.vaadin.shared.data.DataProviderRpc; | ||||
import com.vaadin.shared.data.DataProviderState; | import com.vaadin.shared.data.DataProviderState; | ||||
import com.vaadin.shared.data.DataRequestRpc; | import com.vaadin.shared.data.DataRequestRpc; | ||||
public class RpcDataSource extends AbstractRemoteDataSource<JSONObject> { | public class RpcDataSource extends AbstractRemoteDataSource<JSONObject> { | ||||
protected RpcDataSource() { | |||||
registerRpc(DataProviderRpc.class, new DataProviderRpc() { | |||||
@Override | |||||
public void setRowData(int firstRow, String rowsJson) { | |||||
JSONValue parsedJson = JSONParser.parseStrict(rowsJson); | |||||
JSONArray rowArray = parsedJson.isArray(); | |||||
assert rowArray != null : "Was unable to parse JSON into an array: " | |||||
+ parsedJson; | |||||
ArrayList<JSONObject> rows = new ArrayList<JSONObject>( | |||||
rowArray.size()); | |||||
for (int i = 0; i < rowArray.size(); i++) { | |||||
JSONValue rowValue = rowArray.get(i); | |||||
JSONObject rowObject = rowValue.isObject(); | |||||
assert rowObject != null : "Was unable to parse JSON into an object: " | |||||
+ rowValue; | |||||
rows.add(rowObject); | |||||
} | |||||
dataSource.setRowData(firstRow, rows); | |||||
} | |||||
@Override | |||||
public void removeRowData(int firstRow, int count) { | |||||
dataSource.removeRowData(firstRow, count); | |||||
} | |||||
@Override | |||||
public void insertRowData(int firstRow, int count) { | |||||
dataSource.insertRowData(firstRow, count); | |||||
} | |||||
@Override | |||||
public void resetDataAndSize(int size) { | |||||
dataSource.resetDataAndSize(size); | |||||
} | |||||
}); | |||||
} | |||||
private DataRequestRpc rpcProxy = getRpcProxy(DataRequestRpc.class); | private DataRequestRpc rpcProxy = getRpcProxy(DataRequestRpc.class); | ||||
@Override | @Override | ||||
@Override | @Override | ||||
protected void extend(ServerConnector target) { | protected void extend(ServerConnector target) { | ||||
((GridConnector) target).setDataSource(dataSource); | ((GridConnector) target).setDataSource(dataSource); | ||||
registerRpc(DataProviderRpc.class, new DataProviderRpc() { | |||||
@Override | |||||
public void setRowData(int firstRow, String rowsJson) { | |||||
JSONValue parsedJson = JSONParser.parseStrict(rowsJson); | |||||
JSONArray rowArray = parsedJson.isArray(); | |||||
assert rowArray != null : "Was unable to parse JSON into an array: " | |||||
+ parsedJson; | |||||
ArrayList<JSONObject> rows = new ArrayList<JSONObject>(rowArray | |||||
.size()); | |||||
for (int i = 0; i < rowArray.size(); i++) { | |||||
JSONValue rowValue = rowArray.get(i); | |||||
JSONObject rowObject = rowValue.isObject(); | |||||
assert rowObject != null : "Was unable to parse JSON into an object: " | |||||
+ rowValue; | |||||
rows.add(rowObject); | |||||
} | |||||
dataSource.setRowData(firstRow, rows); | |||||
} | |||||
@Override | |||||
public void removeRowData(int firstRow, int count) { | |||||
dataSource.removeRowData(firstRow, count); | |||||
} | |||||
@Override | |||||
public void insertRowData(int firstRow, int count) { | |||||
dataSource.insertRowData(firstRow, count); | |||||
} | |||||
@Override | |||||
public void resetDataAndSize(int size) { | |||||
dataSource.resetDataAndSize(size); | |||||
} | |||||
}); | |||||
} | } | ||||
@Override | @Override |
* License for the specific language governing permissions and limitations under | * License for the specific language governing permissions and limitations under | ||||
* the License. | * the License. | ||||
*/ | */ | ||||
package com.vaadin.client.ui.grid.renderers; | |||||
package com.vaadin.client.connectors; | |||||
import com.vaadin.client.ui.grid.renderers.TextRenderer; | |||||
import com.vaadin.shared.ui.Connect; | import com.vaadin.shared.ui.Connect; | ||||
/** | /** |
* License for the specific language governing permissions and limitations under | * License for the specific language governing permissions and limitations under | ||||
* the License. | * the License. | ||||
*/ | */ | ||||
package com.vaadin.client.ui.grid.renderers; | |||||
package com.vaadin.client.connectors; | |||||
import com.vaadin.client.ui.grid.FlyweightCell; | import com.vaadin.client.ui.grid.FlyweightCell; | ||||
import com.vaadin.client.ui.grid.Renderer; | import com.vaadin.client.ui.grid.Renderer; |
} | } | ||||
} | } | ||||
protected boolean isPinned() { | |||||
public boolean isPinned() { | |||||
return pinnedRows.containsKey(key); | return pinnedRows.containsKey(key); | ||||
} | } | ||||
*/ | */ | ||||
package com.vaadin.tests.widgetset.client.grid; | package com.vaadin.tests.widgetset.client.grid; | ||||
import com.vaadin.client.connectors.AbstractRendererConnector; | |||||
import com.vaadin.client.ui.grid.FlyweightCell; | import com.vaadin.client.ui.grid.FlyweightCell; | ||||
import com.vaadin.client.ui.grid.Renderer; | import com.vaadin.client.ui.grid.Renderer; | ||||
import com.vaadin.client.ui.grid.renderers.AbstractRendererConnector; | |||||
import com.vaadin.shared.ui.Connect; | import com.vaadin.shared.ui.Connect; | ||||
@Connect(com.vaadin.tests.components.grid.IntArrayRenderer.class) | @Connect(com.vaadin.tests.components.grid.IntArrayRenderer.class) |
import com.google.gwt.dom.client.DivElement; | import com.google.gwt.dom.client.DivElement; | ||||
import com.google.gwt.dom.client.NativeEvent; | import com.google.gwt.dom.client.NativeEvent; | ||||
import com.google.gwt.user.client.DOM; | import com.google.gwt.user.client.DOM; | ||||
import com.vaadin.client.connectors.AbstractRendererConnector; | |||||
import com.vaadin.client.ui.grid.Cell; | import com.vaadin.client.ui.grid.Cell; | ||||
import com.vaadin.client.ui.grid.FlyweightCell; | import com.vaadin.client.ui.grid.FlyweightCell; | ||||
import com.vaadin.client.ui.grid.Renderer; | import com.vaadin.client.ui.grid.Renderer; | ||||
import com.vaadin.client.ui.grid.renderers.AbstractRendererConnector; | |||||
import com.vaadin.client.ui.grid.renderers.ComplexRenderer; | import com.vaadin.client.ui.grid.renderers.ComplexRenderer; | ||||
import com.vaadin.shared.communication.ServerRpc; | import com.vaadin.shared.communication.ServerRpc; | ||||
import com.vaadin.shared.ui.Connect; | import com.vaadin.shared.ui.Connect; |