package org.netxilia.server.js.editors; import static org.netxilia.server.jslib.NetxiliaGlobal.$; import static org.stjs.javascript.Global.$map; import org.netxilia.server.js.Bounds2; import org.netxilia.server.js.Cell; import org.netxilia.server.js.CellRange; import org.netxilia.server.jslib.NetxiliaJQuery; import org.stjs.javascript.Map; public class DateEditor implements Editor { private Map<String, Object> params; private NetxiliaJQuery editorElement; private EditingContext context; public DateEditor(EditingContext context, Map<String, Object> params) { this.params = params; this.context = context; } @Override public void setCaptureSelection(CellRange selection) { // TODO Auto-generated method stub } @Override public String value() { return this.editorElement != null ? (String) this.editorElement.val() : null; } @Override public void show(boolean show) { if (show) { this.editorElement.show(); this.editorElement.focus(); this.editorElement.trigger("click"); // this.editorElement.datepicker('show'); } else { this.editorElement.hide(); // this.editorElement.datepicker('hide'); } } @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void edit(Cell cell, Bounds2 pos, String value) { this.editorElement = this.context.elements.$get("date-editor"); if (this.editorElement == null) { this.editorElement = $("<input type='text' id='date-editor' class='editor-visible-index'>").appendTo( this.context.container); this.context.elements.$put("date-editor", this.editorElement); this.editorElement.simpleDatepicker((Map) $map("startdate", 1970, "enddate", 2020)); } this.editorElement.css((Map) $map("top", pos.top, "left", pos.left, "width", pos.width + 4, "height", pos.height)); if (value != null) { this.editorElement.val(value); } else { this.editorElement.val(cell.getValue()); } } }